Linux下如何让程序后台运行

后台,其实指的是当前登陆终端的后台。在终端执行后台命令,如果在命令尚未执行完毕时就关闭终端,那么这个后台命令还会继续执行吗?当然不会,因为关闭终端时系统发送一个SIGHUP信号。即使不退出终端,在终端中执行ctrl + C,会发送一个SIGINT信号,进程也会退出。
nohup的意思是忽略SIGHUP信号, 所以当运行nohup a的时候, 关闭shell, 那么进程a还是存在的(对SIGHUP信号免疫)。 注意, 如果你直接在shell中用Ctrl C, 那么, a进程也是会消失的(因为对SIGINT信号不免疫)。&对SIGINT信号免疫,所以a &运行进程a,直接在shell中Ctrl C,a进程也不会退出。
所以最好的方法是:nohup a &,此时无论在shell中Ctrl C或者是关闭shell,a进程都不会退出。

posted @ 2020-12-02 20:25  21summer  阅读(1458)  评论(0编辑  收藏  举报