nohup 是无限期的吗?

Ann*_*mus 4 command-line process signals

如果我用 无限循环运行一个程序nohup,该程序是否会无限期运行(直到机器被重置或直到我手动终止它)?

kma*_*rsh 13

Nohup 设置 HANGUP 信号的默认行为,这可能会被应用程序覆盖。来自其他具有权限(root 或同一用户)或不良行为(段错误、总线错误)的其他进程的其他信号也可能导致程序终止。资源限制(ulimit)也可以结束程序。

除非这些,您的无限循环可能会运行很长时间。


Hem*_*ant 5

以下是 nohup源代码中的两行重要内容。

(void)signal(SIGHUP, SIG_IGN); // 忽略 SIGHUP

execvp(*argv, argv); // 运行命令。

所以直到您的应用程序调用类似

signal (SIGHUP, SIG_DFL); //或一些自定义信号处理程序

在正常情况下,它会继续运行,直到您重新启动机器或自己杀死它。
kmarsh 指出的情况下,它也可能被终止。