nohup &程序后台运行

当终端关闭时,会话失效,程序就会推出,而nohup + &可以在关闭终端或是在退出账号时,进程仍然保持运行状态。

1,nohup command &

程序启动日志会写进当前目录的nohup.out文件中。如果当前的nohup.out不可写,则写进$HOME/nohup.out 文件中。

当终端关闭时,运行的程序会由Linux初始进程接管,即其父进程PPID=1.

 

2,setsid 可以达到同样的效果,也是使运行的程序脱离父进程的控制,即其父进程切换为初始进程init.

setsid command   与nohup相比,不用加&。

 

3,exit命令退出终端时,程序还是会继续运行,其原因是退出终端时,不会向终端所属任务发送SIGHUP信号,其原理是由huponexit选项控制的。

默认是off。可以使用shopt查看。

执行shopt -s huponexit可以设置成on。再次使用exit命令退出,所属任务就会跟随退出。

 

4,trap 是接受到指定信号时将要采取的行动。例如trap “” HUP,意为当该进程接受到HUP信号,忽略该信号。

 

posted @ 2020-11-12 23:50  NEWdun  阅读(284)  评论(0)    收藏  举报