共计 798 个字符,预计需要花费 2 分钟才能阅读完成。
文章目录 [隐藏]
需求背景:众所周知,当我们在 Linux 系统中执行一个程序时,我们可以用 ps 命令查看到它的进程 ID,但如何查看程序执行时的环境变量呢?这就是本节需要解决的问题。
1、以 httpd 进程为例
[root@SAFE ~]# ps aux | grep httpd
4330 apache 0:00 /usr/sbin/httpd
4439 apache 0:00 /usr/sbin/httpd</pre>
这里我们看到 httpd 的进程号为 4330
2、根据进程号查看 proc 文件
[root@SAFE ~]# cat /proc/4330/environ
TERM=linux
CUTIL_LOG_PATH=/tmp
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/asm/sbin:/asm/bin:/asm/sh:/root/bin:/asm/etc/init.dPWD=/LANG=CSHLVL=4LC_CTYPE=zh_CN_=/usr/sbin/httpd
此时我们可以看到一团糟糕的字符串。我们使用 tr 命令转换一下:
[root@SAFE ~]# cat /proc/4330/environ | tr '\0' '\n'
TERM=linux
CUTIL_LOG_PATH=/tmp
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/asm/sbin:/asm/bin:/asm/sh:/root/bin:/asm/etc/init.d
PWD=/
LANG=C
SHLVL=4
LC_CTYPE=zh_CN
_=/usr/sbin/httpd
此时就按行打印出程序执行的环境变量相关信息了,最后一行可以看到是程序的报告路径。
正文完
扫码赞助
