所以,我有一个长期运行的脚本(订单几天)说execute.sh
,我打算在我有用户帐户的服务器上执行...
现在,我想执行此脚本,以便即使我从服务器注销或断开连接也能永久运行? 我怎么做? 感谢
答案 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的文件。