需求背景:众所周知,当我们在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
此时就按行打印出程序执行的环境变量相关信息了,最后一行可以看到是程序的报告路径。
- 微信扫码赞助
- 支付宝赞助