2013-02-16 135 views
0

我编写了一个运行服务的shell脚本。我打开终端,运行运行该服务的脚本,并在脚本结束后关闭终端,但服务仍在运行,这就是我想要的。“在终端中运行”的奇怪行为,它会终止进程

无论如何,如果我通过Gnome命令“Run in terminal”运行脚本,当终端关闭时,服务也会被终止。

这很奇怪,我不明白为什么,我无法解决这个问题。

任何想法?

回答

2

尝试执行

nohup ./shell_script & 

nohup命令使得该方法继续执行终端已经关闭后,忽略SIGHUP信号。

注意脚本将在后台执行,输出将附加到文件中。

+2

@ l3golas另外,上面的命令将输出执行的shell脚本的进程ID,因此您可以在再次登录时监视它。 – user1428716 2013-02-16 16:44:06

+0

太棒了!它现在完美运行!非常感谢! – l3golas 2013-02-16 22:07:47

+0

现在我只有一个问题:显然,“在终端中运行”的行为与打开终端,执行脚本并关闭终端的行为不同,因为退出时的第一个操作会杀死脚本(除非使用nohup ),第二个而不是杀死它。你知道为什么吗? – l3golas 2013-02-16 22:10:33