Linux下查看进程(程序)启动时的环境变量
Linux的pargs
====================================
今天又遇到一个老问题:
同事遇到了sqlplus "/as sysdba"却总显示connect to idle instance。
我的第一反应是用户或者环境变量不对
在Solaris上遇到类似问题是很简单的,用pargs就可以
但一时想不起来Linux下如何查看当时的环境变量,因为是测试库且没连接,就kill pmon+ipcrm,然后重启了
后来验证确实是因为同事启动数据库的时候oracle_home后面多加了"/"
再后来找了一下,Linux下的pargs:
tr '\0' '\n' < /proc/12345/environ
或者
ps eww -p 12345
其中12345是对应的进程号
====================================
如果是当前shell,查看环境变量可以用set/env/export任何一个命令,三者有点小区别是:
set 显示当前shell的变量,包括当前用户的变量
env 显示当前用户的变量
export 显示当前导出成用户变量的shell变量
[root@localhost root]# aaa=bbb
[root@localhost root]# echo $aaa
bbb
[root@localhost root]# set |grep aaa
aaa=bbb
[root@localhost root]# env |grep aaa
[root@localhost root]# export aaa
[root@localhost root]# env |grep aaa
aaa=bbb