2012-12-13 105 views
3

我有一個Process對象,我需要在給定的時間點終止。 我試過Process.destroy(),但是這並沒有有效地讓進程釋放它使用的端口,因此我無法使用它。 我需要做的就是發送一個「Ctrl + C」給已經寫入關機鉤子的「進程」,它負責釋放任何資源。發送Ctrl + C進程

我該怎麼做。

我正在使用Windows

+2

您正在使用哪種操作系統? –

+0

關閉鉤子並不總是在異常程序終止時調用(取決於底層操作系統)。 – Neet

+0

我也面臨着同樣的問題,我已經在這裏詳細解釋:http://stackoverflow.com/questions/27942679/how-to-terminate-a-process-normally-created-using-processbuilder 你能請指導我如何解決這個問題?任何鏈接? –

回答

2

對正常操作的關機掛鉤進行計數是一種破損的方法。您必須設計您的應用程序以提供自己的協議,通過它可以接收關閉信號。這是編寫一個可靠的多平臺應用程序的唯一方法,其中「多平臺」我也暗示同一平臺的不同版本。

+0

+1你必須編寫你的協議,並假定與服務的連接在任何時候都可能死亡。例如權力可能會失敗。你應該嘗試給你的協議一個優雅的斷開,但你不能認爲它總是會被使用。 –

+0

我也面臨着同樣的問題,我已經在這裏詳細解釋:stackoverflow.com/questions/27942679/...你能指導我如何解決這個問題嗎?任何鏈接? –

0

您可以使用taskkill發送一個命令,如article中所述。