nohup是否只适用于shell进程的子进程,而不适用于非shell进程的子进程?

nohup是否只适用于shell进程的子进程,而不适用于非shell进程的子进程?

nohup 是一个外部程序。如何将 shell 进程的子进程的 SIGHUP 操作更改为“忽略”? (就子进程调用时的一些参数fork()和/或execve()nohup 之后的程序而言?)

nohup是否只适用于shell进程的子进程,而不适用于非shell进程的子进程?

谢谢。

答案1

nohup将自身配置为忽略该SIGHUP信号;参见例如GNU 实现POSIX 规范nohup指出

当时被点名的公用事业被调用时,SIGHUP 信号应设置为被忽略。

也如由 POSIX 指定,子进程继承除 之外的被忽略信号,因此在被忽略之后SIGCHLD启动的任何进程本身也会被忽略。nohupSIGHUPSIGHUP

nohup的处理适用于 的任何子进程nohup,无论 的nohup父进程如何。nohup不是(也不能)影响其任何父级处理信号的方式,无论它们是否是 shell。

相关内容