2
如果我使用exec
啓動了一個類似於數據庫轉儲的長時間運行的命令,那麼我將如何解除遠程主機上的該命令(例如,如果用戶開始糖化控制C來殺死腳本。如何取消長時間運行的Ruby Net :: SSH命令
在我的測試中,即使您使用Control-C並且終止遠程命令一直運行的應用程序,它似乎也是如此。
如果我使用exec
啓動了一個類似於數據庫轉儲的長時間運行的命令,那麼我將如何解除遠程主機上的該命令(例如,如果用戶開始糖化控制C來殺死腳本。如何取消長時間運行的Ruby Net :: SSH命令
在我的測試中,即使您使用Control-C並且終止遠程命令一直運行的應用程序,它似乎也是如此。
捕捉SIGINT和SystemExit和清理:
rescue SystemExit, Interrupt
# clean up
# net-ssh execute a kill on the pid
# raise error
end
那不是殺了Ruby的過程,而不是它開始在遠程主機上的程序?我想你可以用任何遠程命令替換Process.kill來終止進程。你也想在救援後提出錯誤,對吧? –
謝謝,@ keithrbennett,根據您的建議編輯的代碼示例。 –