是否可以更改另一个进程中的信号处理程序?
我今天发现了 nohup
工具,并且想知道它的实现。具体来说,似乎必须有一种方法来告诉另一个进程或子进程忽略某些信号。是否有系统调用或类似的东西可以做到这一点?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我今天发现了 nohup
工具,并且想知道它的实现。具体来说,似乎必须有一种方法来告诉另一个进程或子进程忽略某些信号。是否有系统调用或类似的东西可以做到这一点?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
nohup 只是
exec
的命令,您在忽略HUP
信号后给出它。从源代码来看:我假设这意味着如果指定的命令执行类似以下操作:
nohup 将无法正常工作。
nohup simply
exec
's the command you give it after ignoring theHUP
signal. From the source code:I'm assuming this means that if the specified command did something like:
nohup wouldn't work properly.
愿来源与您同在:)
免责声明:这句话实际上不是我的,而是 Marshall Kirk McKusick 的。
May the source be with you :)
Disclamer: the phrase is actually not mine, but of Marshall Kirk McKusick.
进程在 exec 调用后保留信号掩码。
请参阅此处的 nohup 源代码,例如:
http:// /www.opensource.apple.com/source/shell_cmds/shell_cmds-118/nohup/nohup.c
有关 exec() 调用的详细信息,请参见此处:
http://www.opengroup.org/onlinepubs/009695399/functions/exec.html
即:
Process preserves signal mask after exec call.
See sources for nohup here, for example:
http://www.opensource.apple.com/source/shell_cmds/shell_cmds-118/nohup/nohup.c
For the details on exec() call see here:
http://www.opengroup.org/onlinepubs/009695399/functions/exec.html
Namely: