我是Ubuntu的新手。我已经学会了一个命令
nohup [command]
-<command>
对挂断信号免疫
我无法理解“免于挂断信号”的含义。它正在谈论什么类型的信号?并且请通过示例告诉我如何使用此命令。
让我们考虑一下,您已经gedit
从终端打开了文本编辑器并正在使用它。如果您在关闭终端之前先关闭终端gedit
,则gedit也会在关闭终端后立即关闭。那么,这是怎么回事?在gedit
运行作为终端下一个子进程。当您关闭终端时,挂断信号(SIGHUP
)将发送到该进程,这将终止子进程。
另一方面,如果您希望子进程(在此处gedit
)即使在关闭父终端后仍继续运行,则希望您的进程不受挂断信号的影响。这样关闭终端不会关闭子进程。nohup
确实完成了这项工作。
nohup
不会从终端断开命令,而是使脚本忽略SIGHUP,并将stdout / stderr重定向到文件nohup.out,以便注销后该命令可以在后台继续运行。如果关闭外壳程序/终端或注销,则命令不再是该外壳程序的子级。它属于init进程。如果您进行搜索,pstree
您将看到它现在归进程1(init)所有。由于前台已不存在,因此无法将其带回前台。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句