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信号,忽略该信号。

浙公网安备 33010602011771号