日期:2014-05-16  浏览次数:20678 次

请教UNIX(aix) 环境执行Shell脚本的问题
在执行Shell脚本时,直接sh xxxx.sh & 挂后台跑,完成时出现下面文字:

linjl@/gmcc/qtemp/zeh/MPData/201207$
[2] - Done sh sc_to_bass_oprtorinfo_mon.sh &
linjl@/gmcc/qtemp/zeh/MPData/201207$l

而使用 nohup sh xxxx.sh > xxxx.log & 也挂后台时,完成时出现:
[1] + Done nohup sh sd_to_bass_mrkt_chnl_day_mon.sh > sd_to_bass_mrkt_chnl_day_mon.log &


我检查过数据,二者都已经成功执行。但不知这完成提示时的"+","-",以及前面的[1],[2] 分别表示什么意思?

再者挂nohup 与不挂有何区别? 我这里只是方便写日志,并不知其所以然,盼高手指点.

------解决方案--------------------
nohup是让你启动的进程忽略SIGHUP信号,这个信号是你退出当前SHELL终端时候发向所有SHELL子进程的信号.

所以nohup配合&执行就真的像个守护进程一样在后台跑了,不过这可不是守护进程, 因为并没有脱离终端, 还是属于终端所属的会话里, 只不过是后台进程组。