Environment-Variables
AIX 中等效的 /proc/process_pid/environ 文件是什麼?
通常我在 Linux 中使用
string -a
命令查看這個文件來查看這個文件。AIX 有類似的東西嗎?我沒有找到任何東西
/proc/pid_process
我使用這個文件來了解某個程序看到的環境變數。
例如,我在伺服器上安裝了一個 Oracle 數據庫。如果我想知道環境變數
pmon
程序看到了什麼,我可以找到該程序:[root@oracle-database 1664]# ps aux|grep pmon|grep -v grep oracle 8897 0.0 0.5 1133456 5312 ? Ss Nov27 0:18 ora_pmon_idbcloud [root@oracle-database 1664]#
並查看文件
/proc/process_pid/environ
[root@oracle-database 1664]# strings -a /proc/8897/environ XDG_SESSION_ID=4689 HOSTNAME=oracle-database SHELL=/bin/bash TERM=xterm HISTSIZE=1000 USER=oracle ORACLE_SID=idbcloud ORACLE_BASE=/u01/app/oracle MAIL=/var/spool/mail/oracle PATH= PWD=/u01 LANG=en_US.UTF-8 HISTCONTROL=ignoredups SHLVL=1 HOME=/home/oracle LOGNAME=oracle LESSOPEN=||/usr/bin/lesspipe.sh %s ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 NLS_DATE_FORMAT=DD/MM/YYYY HH24:MI:SS _=/bin/rlwrap OLDPWD=/u01 ORA_NET2_DESC=9,12 SKGP_SPAWN_DIAG_POST_FORK_TS=1606503159 SKGP_HIDDEN_ARGS=<FATAL/S/PMON/x0/x1/x0/x5AF86E15/8888/8888/x0/x2/x1/x5AF86E38/1606503159/1606503159/196609/0/(nil)> SKGP_SPAWN_DIAG_PRE_FORK_TS=1606503159 SKGP_SPAWN_DIAG_PRE_EXEC_TS=1606503159 ORACLE_SPAWNED_PROCESS=1 RDMAV_FORK_SAFE=1 RDMAV_HUGEPAGES_SAFE=1
正如Thomas 所說,AIX 系統中沒有文件,但該
ps
命令 確實讓您“知道某個程序正在查看哪些環境變數”e Displays the environment as well as the parameters to the command, up to a limit of 80 characters. ew Wraps the display from the e flag one extra line. eww Wraps the display from the e flag and displays the ENV list until the flag reaches the LINE_MAX value. ewww Wraps the display from the e flag and displays the ENV list until the flag reaches the INT_MAX value.
例如:
$ ps ewww 1835516 PID TTY STAT TIME COMMAND 1835516 - A 7:02 /usr/sbin/syncd 60 _=/usr/bin/nohup LANG=C PATH=/usr/sbin:/etc:/usr/bin LC__FASTMSG=true ODMDIR=/etc/objrepos HOME=/ PWD=/ CFGLOG=default NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N.cat LIBPATH=/usr/lib:/lib
AIX 沒有提供與
/proc
Linux 相同樣式的偽文件系統。參考手冊頁:
- **
/proc
**文件(AIX)- proc - 程序資訊偽文件系統(Linux)
後者記錄了一個專用於環境的偽文件:
/proc/[pid]/environ This file contains the initial environment that was set when the currently executing program was started via execve(2).
而前者描述了一個包含程序資訊的文件
psinfo
包含有關ps命令所需的程序的資訊。如果程序包含多個執行緒,則使用一個代表執行緒來導出lwpsinfo資訊。該文件被格式化為一種**
struct psinfo
**類型並包含以下成員:尤其是:
prptr64_t pr_envp; /* 初始環境向量的地址 在使用者程序中 */
雖然可以編寫一個讀取該資料結構的腳本,但您不會只使用**
grep
or來執行此操作strings
**:該地址將用於訪問記憶體映像文件:as
包含程序的地址空間映像。as文件既可以打開也可以讀寫。該**
lseek
**子常式用於將文件定位在感興趣的虛擬地址處。之後,您可以分別使用 read 和 write 子程序查看和修改地址空間。