su -和login shell

上一篇 / 下一篇  2008-10-10 15:03:39

最近部署一个java程序的时候,root用户执行jboss的启动脚本,反复提示jdk程序出错。

但是该脚本据上次正确执行后未被改动,且曾经被正确执行无数遍了。那问题出在哪里呢?

后来反复实践,发现我是在admin用户下su到root用户,没有正确加载环境变量所致。

只要在su后面加一个“-”,问题迎刃而解,原来小小的“-”是罪魁祸首。

下面再强调下基本概念,血的教训啊

login shell会执行/etc/profile和.bash_profile,/etc/bashrc和.bashrc
non-login shell则仅执行/etc/bashrc和.bashrc
查看su的man手册,su - 切换用户将会使用login shell;不带-的话,则会使用non-login shell
PS:在RHEL下,辨别login和non-login shell另外一种方法是:exit命令后如果会清屏则是login shell,反之则是non-login shell

TAG:

 

评分:0

我来说两句

日历

« 2024-05-11  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 7307
  • 日志数: 21
  • 建立时间: 2008-07-04
  • 更新时间: 2008-10-10

RSS订阅

Open Toolbar