Linux
使用“ssh地址執行檔”時如何正確中斷程序?
要在遠端主機上測試我的程序,我執行命令:
ssh address ./my_executable
. 這my_executable
是一個長時間執行的程序,但在開發過程中我經常使用 CTRL+C 中斷它。問題是 CTRL+C 會中斷 ssh 會話而不會殺死我的程序,因此當我嘗試再次執行它時出現錯誤,因為我的程序仍在使用資源。目前我正在使用一種解決方法:
ssh address ./my_executable; echo DONE; ssh address pkill my_executable
但是有沒有更好的方法來中斷在命令模式下通過 ssh 執行的程序?
當我登錄並執行執行檔時,當然不會出現問題,
ssh address
因為信號被傳遞到遠端終端,但它需要更多的輸入並且不能自動化。
如果你告訴
ssh
明確使用終端,即使它不需要終端,你也會得到你想要的行為:ssh -t address ./my_executable
然後
Ctrl``C
將 killmy_executable
,而不是ssh
(無論如何都會立即退出,因為my_executable
退出時連接已關閉)。