如果与远程服务器的连接丢失,此命令是否会运行?

如果与远程服务器的连接丢失,此命令是否会运行?

如果我在远程服务器上运行这样的命令:

$ sleep 3h ; date ; nohup long-running-process ; date

...并且2小时后连接丢失,完整的命令会被执行吗?

如果没有,我如何修改命令以确保即使连接丢失,一切都会运行?

答案1

否,因为在处理sleep之前,连接将断开并向所有在命令期间连接到终端的子进程发送 SIGHUP 信号。nohup

如果您需要在特定时间运行命令,您可以:

  • 将命令放入脚本中,然后 nohup 该脚本。
  • 使用一个at工作为了一次性的需要
  • 用一个cron工作对于定期工作
  • 使用tmux或者screen在与服务器的连接中保留您的终端。

正如一句老话所说,剥猫皮的方法不止一种。

相关内容