执行即使我注销也会运行的脚本

时间:2014-10-28 19:50:25

标签: bash shell unix

所以,我有一个长期运行的脚本(订单几天)说execute.sh,我打算在我有用户帐户的服务器上执行...

现在,我想执行此脚本,以便即使我从服务器注销或断开连接也能永久运行? 我怎么做? 感谢

2 个答案:

答案 0 :(得分:8)

你有几个选择。最基本的是使用nohup

nohup ./execute.sh

nohup作为子进程执行该命令并从终端分离,并在收到SIGHUP时继续运行。此信号表示sig hangup,如果您关闭终端并且某个进程仍然附加到该终端,则会触发此信号。

根据位于当前目录中的默认nohup.out,流程的输出将被重定向到文件。


您也可以使用bash的{​​{1}}功能。您可以在bash中启动脚本:

disown

然后按 Ctrl + z 然后输入:

./execute.sh

该过程现在将在后台运行,与终端分离。如果您关心脚本输出,可以将输出重定向到日志文件:

disown

另一种选择是在远程计算机上安装./execute.sh > execute.log 2>&1 ,在屏幕会话中运行命令并从中分离。你会找到很多关于这方面的教程。

答案 1 :(得分:1)

nohup(没有挂断)它并在后台运行它:

nohup execute.sh &

通常会进入屏幕的输出(STDOUT)将转到名为nohup.out的文件。