今天在Xshell 终端上运行一个程序A,然后关闭Xshell 终端,然后进入Xshell后用ps -ef | grep 进程名 发现进程A已经挂了。后来上网查找了一些资料,原因shell开启一个进程,当shell终端关闭后,它会向所有由终端开启的进程发起一个hangup信号,所有接些信号的进程退出,如果我们要在退出shell的时候继续运行进程,则需要使用nohup忽略hangup信号,或者 setsid将将父进程设为init进程(进程号为1)。也就是让进程在后台运行
用如下命令:
nohup ./程序名 > /dev/null 2>&1
例如:
nohup ./voicecode > /dev/null 2>&1
参考资料:
http://blog.sina.com.cn/s/blog_412ec72c0100y3wp.html
http://blog.sina.com.cn/s/blog_5aee9eaf0100y5pg.html
http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/
http://www.cnblogs.com/iLinuxC/archive/2012/05/23/2514750.html
时间: 2024-10-13 11:42:23