Linux

使用“ssh地址執行檔”時如何正確中斷程序?

  • January 12, 2021

要在遠端主機上測試我的程序,我執行命令: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將 kill my_executable,而不是ssh(無論如何都會立即退出,因為my_executable退出時連接已關閉)。

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