Nohup 和 &

来自姬鸿昌的知识库
跳到导航 跳到搜索

首先要知道

在 Linux 操作系统中使用命令启动一个进程后,Ctrl + C 会发送 SIGINT(SIGnal-INTerrupt) 信号导致进程停止;

关闭会话(exit 或 关闭 Xshell 窗口)会发出 SIGHUP(SIGnal: Hang-UP) 信号导致进程停止;


然后要知道关于 &

使用 & 启动程序可以使进程免疫 SIGINT 信号,Ctrl + C 的时候进程就不会停止;

但因为它并不免疫 SIGHUP 信号,所以此时 exit 或者关闭 Xshell 窗口再重新登录会发现进程还是停止了;

另外如果启动命令只有 & 的话,程序会输出内容到终端(控制台)


再来说说 nohup

使用 nohup 启动程序可以使进程免疫 SIGHUP 信号,直接 exit 或者关闭 Xshell 窗口的时候进程就不会停止;

还有 nohup 默认会输出内容到一个 nohup.out 的文件(没有自动创建)


总结

要想让程序在后台持续运行,nohup 和 & 就要一起用。