所以,我有一个长期运行的脚本(订单几天)说execute.sh我计划在我有一个用户帐户的服务器上执行...
现在,我想执行此脚本,以便即使我从服务器注销或断开连接它也会永远运行?我怎么做?谢谢
你有几个选择.最基本的是使用nohup:
nohup ./execute.sh
Run Code Online (Sandbox Code Playgroud)
nohup作为子进程执行该命令并从终端分离并在接收时继续运行SIGHUP.sig hangup如果您关闭终端并且仍然附加了进程,则此信号表示并将被触发.
该进程的输出将被重定向到一个文件,默认nohup.out位于当前目录中.
你也可以使用bash的disown功能.你可以在bash中启动一个脚本:
./execute.sh
Run Code Online (Sandbox Code Playgroud)
然后按Ctrl+ z然后输入:
disown
Run Code Online (Sandbox Code Playgroud)
该过程现在将在后台运行,与终端分离.如果您关心脚本输出,您可以将输出重定向到日志文件:
./execute.sh > execute.log 2>&1
Run Code Online (Sandbox Code Playgroud)
另一种选择是screen在远程计算机上安装,在屏幕会话中运行命令并从中分离.你会发现很多关于这方面的教程.