Shell
Gaussian 在遠端 linux 機器上使用 nohup 執行,在退出 shell 之前本地電腦斷電時被殺死
我在 Windows 上通過 SecureCRT 在遠端 Linux 上執行 Gaussian 時遇到問題。
高斯
Gaussian在執行時會產生不同的子執行檔(“連結”)。例如,我通過執行 啟動 Gaussian
nohup g09 < test.in > test.out 2> test.out &
,並且會在特定情況下g09
產生不同link
的 sl301.exe
和。l502.exe
執行高斯
當我連接到遠端 Linux 機器並使用以下命令執行 Gaussian 時
nohup ${Path_Of_Gaussian}/g09 < jobname.in > jobname.out 2> jobname.out &
:
- 如果我通過鍵入
exit
並按退出 shellEnter
,我可以在 Linux 上的 Gaussian 繼續執行時退出(具體執行檔的名稱取決於具體時間)。- 如果我關閉電腦(然後 SecureCRT 將關閉),Linux 上的 Gaussian 會被殺死並抱怨“掛斷”。
- 如果我通過鍵入
exit
並按退出Enter
,然後登錄,我可以關閉電腦電源並且 Linux 上的 Gaussian 會繼續執行。jlliagre
的答案在這種情況下不起作用。執行簡單命令
例如,採用一個簡單的執行檔,它什麼都不做(即,不處理輸入和輸出)但會休眠 10 分鐘。當我執行它時
nohup ${Path_Of_Executable}/executable &
:
- 如果我通過鍵入
exit
並按退出 shellEnter
,我可以退出並且執行檔繼續在 Linux 上執行。- 如果我關閉電腦(然後 SecureCRT 將關閉),在 Linux 上執行的執行檔將被終止。
- 如果我通過鍵入
exit
並按退出Enter
,然後登錄,我可以關閉電腦(然後 SecureCRT 將關閉)並且 Linux 上的執行檔繼續執行。- 正如在
jlliagre
知識淵博的答案中一樣,如果我執行nohup ${Path_Of_Executable}/executable </dev/null >/dev/null 2>&1 &
,我可以在 Linux 上的執行檔繼續執行時關閉電源。換句話說,為什麼
nohup
在 shell 退出之前本地電腦斷電時,在遠端電腦上執行的 Gaussian 會被殺死?
想法 #1 - 否認
根據您描述問題的方式,聽起來 Guassian 仍然與生成它的 shell 有一些聯繫。
除了執行之外,您還可以嘗試的另一件事
nohup
是執行disown -a
,儘管這應該做同樣的事情,即斷開所有生成的程序與接收 SIGHUP 的連接。想法 #2 - 將其包裹在另一個 Bash 中
另一個想法是像這樣呼叫 Guassian。
- 登錄到遠端機器
- nohup 狂歡
- 在這個輔助 shell 中執行 Guassian
這可能會使 Guassian 在本地機器失去連接時不會被終止。
想法 #3 - 使用 tmux 或 screen
我也遇到過與此類似的應用程序,我通常不會在桌面上敲太多頭,而是伸手去拿
screen
和/或tmux
在 Screen 內的遠端系統上執行應用程序。這可以更好地保護該過程,並具有稍後能夠重新連接它的額外好處。