Linux 遠端運行腳本,螢幕掛起並且永遠不會回到控件

Linux 遠端運行腳本,螢幕掛起並且永遠不會回到控件

我在伺服器中有一個腳本。如果我在本地伺服器上運行它是沒有問題的。

<user@server> ~ % restart_forms A 
forms [A] is Restarting
<user@server> ~ %

但是,如果我從客戶端(另一台linux機器)遠端運行它,它會像這樣

<user@client> ~ % ssh server /path/restart_forms A
forms [A] is Restarting

該畫面掛起並且永遠不會回到控制;我每次都必須使用 ctrl+c 來終止腳本,然後返回控制項。

我知道這可能與標準輸入、標準輸出和標準錯誤有關。現在我嘗試運行這個背景

<user@client> ~ % ssh server /path/restart_forms A &

也嘗試過

<user@client> ~ % ssh server /path/restart_forms A >/dev/null 2>&1 &

以上均失敗並給予相同的問題。 (由於某些業務原因,我無法創建要運行的螢幕)

有人有什麼主意嗎?謝謝

更新:當我ps -ef | grep restart_forms在客戶端中嘗試時,我可以看到該腳本仍在客戶端中運行。不應該是這樣的。

答案1

如果您需要執行一個不會自行終止的腳本,並且您希望在類似的情況下運行它,ssh最好在screentmux會話中運行它,這樣它的終端將與使用的終端分開ssh。這樣,ssh在呼叫腳本後就可以自由退出,並且腳本可以隨心所欲地繼續運行。

為此,請執行以下操作:

ssh <user>@<host> screen -d -m restart_forms A

相關內容