我正在运行 Linux,并在后台运行一个脚本/程序
命令 &
这在 Solaris 上工作正常,但在我的 Linux 机器 (2.6.9-55/ Red Hat) 上,当原始终端窗口关闭/失去连接时,后台进程会停止。我需要对此进行哪些更改,以便它能够像在 Solaris 上一样工作?
答案1
您必须使用 disown 命令(它可能是 bash 特有的,不确定)。
例子:
cmd &
disown
应该可以解决问题。
如果您想稍后将作业重新附加到终端,请使用:
disown -h
或者,您可以使用屏幕。使用方式如下:
screen
cmd
然后,要返回终端,按 ctrl+a,然后按 d。
要返回屏幕,请在任何终端中输入:
screen -r
答案2
如果您运行 nohup cmd &,那么程序将忽略终端关闭时收到的 SIGHUP。