nohup和ampersand有什么区别

nohup myprocess.out&amp或myprocess.out&amp将myprocess.out设置为在后台运行。关闭终端后,进程仍在运行。
他们之间有什么区别

nohup捕捉到挂断信号(请参见man 7信号),而安培没有捕捉到挂断信号(除非外壳以这种方式配置或根本不发送SIGHUP

通常,使用运行命令时&amp之后退出shell,shell将使用挂起信号(kill-SIGHUP<pid>)终止子命令。这可以通过使用nohup来防止,因为它捕捉到信号并忽略它,因此它永远不会到达实际应用程序

如果您使用的是bash,可以使用命令shopt | grep hupon来确定
shell是否向其子进程发送消息。如果它处于关闭状态,进程将不会被激活
终止,因为这似乎是你的情况。有关bash如何终止的更多信息
可以在这里找到应用程序

有些情况下,nohup不起作用,例如,当您启动的进程重新连接时
SIGHUP信号,这里就是这种情况

发表评论