Nohup

如果與遠端伺服器的連接失去,此命令會執行嗎?

  • March 29, 2017

如果我在遠端伺服器上執行這樣的命令:

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

…並且連接在 2 小時後失去,是否會執行完整的命令?

如果沒有,我該如何修改命令以確保即使連接失去也能正常執行?

sleep不,因為在處理之前,連接將斷開連接並向所有連接到終端的子程序發送 SIGHUP 信號nohup

如果您需要在特定時間執行命令,您可以:

  • 把你的命令放在一個腳本中,然後 nohup 腳本。
  • 使用一份at工作來滿足一次性需求
  • cron作業用於定期作業
  • 使用tmuxscreen在與伺服器的連接之間保持您的終端。

俗話說,給貓剝皮的方法不止一種。

引用自:https://unix.stackexchange.com/questions/354577