我们经常需要让系统向某个java程序传入一些环境变量,如何检查它到底向该进程传递了哪些变量呢?
$ ps -ef | grep java
12006 1050 1 0 12:25 ? 00:00:04 java ...
$ ps -wwE -p 1050
将会以一个长长的字符串打印出:
1050 ?? 67:40.42 /usr/bin/java -Dcom.sun.management.jmxremote -Xmx2048m -XX:MaxPermSize=512m -jar /Application
/Jenkins/jenkins.war SHELL=/bin/bash TMPDIR=/var/folders/5f/qnywwqmx3h5fxnwlcssp2sr00000gn/T/ USER=jenkins __CF
_USER_TEXT_ENCODING=0x1F5:0:0 JENKINS_HOME=/Users/Shared/Jenkins/Home PATH=/usr/bin:/bin:/usr/sbin:/sbin PWD=/
CATALINA_OPTS= -Dcom.sun.management.jmxremote SHLVL=0 HOME=/Users/jenkins LOGNAME=jenkins SECURITYSESSIONID=1c2
92 com.apple.java.jvmTask=CommandLine JAVA_ARCH=x
$ xargs --null --max-args=1 < /proc/1050/environ
将会以列表形式打印出:
SHELL=/bin/sh
TERM=linux
USER=me
PATH=/sbin:/usr/sbin:/bin:/usr/bin
PWD=/
HOME=/home/me
SHLVL=2
LOGNAME=me