2016-04-24 144 views
2

如果我使用exec啓動了一個類似於數據庫轉儲的長時間運行的命令,那麼我將如何解除遠程主機上的該命令(例如,如果用戶開始糖化控制C來殺死腳本。如何取消長時間運行的Ruby Net :: SSH命令

在我的測試中,即使您使用Control-C並且終止遠程命令一直運行的應用程序,它似乎也是如此。

回答

0

捕捉SIGINT和SystemExit和清理:

rescue SystemExit, Interrupt 
    # clean up 
    # net-ssh execute a kill on the pid 
    # raise error 
end 
+1

那不是殺了Ruby的過程,而不是它開始在遠程主機上的程序?我想你可以用任何遠程命令替換Process.kill來終止進程。你也想在救援後提出錯誤,對吧? –

+0

謝謝,@ keithrbennett,根據您的建議編輯的代碼示例。 –

相關問題