Linux

在遠端伺服器上執行 shell 作業,關閉終端而不關閉作業

  • January 17, 2016

我正在使用扭矩在遠端伺服器上執行作業。我目前有一個煩人的問題。

當我執行我的工作時,這就是我目前所做的:

  1. 通過 Teamviewer 登錄另一台電腦
  2. 從那台電腦ssh進入遠端伺服器ssh user@remoteserver.com
  3. 在這裡,我執行我的作業腳本sh verycomplicatedrunscript.sh,它會向使用者回顯,例如:

I am now running job 1...

I am now running job 2...

I am now running job 3...

I am now running job 4...

只是為了表明它正在執行以及它正在執行什麼。

唯一的問題是這需要幾天的時間,因為工作量很大並且有數千個。

現在,我想繞過 Teamviewer 步驟,直接ssh從我自己的電腦進入遙控器。但是如果我這樣做,並執行我的作業腳本,然後關閉終端;它殺死了程序(因此我目前在另一台電腦上執行它,我可以通過讓終端保持打開狀態來執行幾天)。

有什麼方法可以讓我在遠端伺服器上執行腳本,然後註銷而不殺死我的作業腳本的執行?

謝謝

解決方案

我最終使用了screen非常坦率地驚人的選項。

我的工作現在正在執行

screen sh awesomejobscript.sh option1 option2 option3

只需使用 nohup:

$ ssh user@remoteserver.com "nohup complexscript.sh > mylog 2>&1 &" 

除了上面的一個,事實證明還有很多解決方案;

screen sh jobscript.sh op1 op2 op3

效果也很好。

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