红联Linux门户
Linux帮助

关于AIX下的su不能使用环境变量问题的解决

发布时间:2016-02-20 11:11:29来源:linux网站作者:雨水

在将系统从Linux移植到AIX的过程中会遇到很多问题,su不能使用环境变量的问题就是其中之一。


脚本中有如下语句:

su - namp -c "/opt/nawg/bin/startwap.sh"

意思上从当前用户切换到namp用户下去,以namp用户的身份执行/opt/nawg/bin/startwap.sh脚本文件。


上面的语句在Linux运行没有任何问题,但在AIX环境就会报错,错误的意思上找不到某个环境变量。而你手工su – namp到namp用户下去,然后输入env却可以找到这个环境变量,这说明在Linux下和AIX下su – namp –c的行为是不同的。su - namp不能使用namp用户的环境变量。


经过很长时间的摸索和跟IBM工程师的沟通,最后问题解决了。这里写下来跟大家分享一下。如果要使用namp用户的环境变量,需加一个参数-l,具体如下:

su - namp -l -c "/opt/nawg/bin/startwap.sh"

注意: -l这个参数在AIX下的man su 中根本就没有提到。这也是看似这么简单一个问题那么难以解决的原因。


本文永久更新地址:http://www.linuxdiyf.com/linux/18236.html