我創建了一個命令行應用程序,它產生一個進程(用戶定義的命令,通常是HTTP服務器),當應用程序的任務完成時,我想讓進程知道它應該終止。在Windows上優雅地終止命令行應用程序
在UNIX中,我可以通過發送SIGTERM來完成,如果進程沒有結束,那麼我可以用SIGKILL強行殺死它。
在Windows中,我很難找到SIGTERM場景的替代方案。我瞭解到有taskkill /PID XXXX
(不/f
!),但
- 我發現沒有什麼
taskkill /PID XXXX
引擎蓋下做的信息,因此我無法測試它。我無法找到如何處理任何taskkill /PID XXXX
在處理方發送。 - 它似乎不適用於
cmd.exe
中的命令。我試圖在一個cmd.exe
運行一個簡單的服務器進程,得到它的PID,而在另一個窗口taskkill /PID XXXX
,但TASKKILL拒絕這樣做:ERROR: The process with PID XXXX could not be terminated. Reason: This process can only be terminated forcefully (with /F option).
所以我的問題是:如何通知一個命令行程序在Windows中,它應該終止而不強制終止它?如何接收和處理終止進程的消息?
你知道我該如何從編程語言(如JavaScript(node.js))發送這些信號? –
@HonzaJavorek:對不起,我沒有。也許你應該爲這個問題添加一個合適的語言標籤,讓那些知道這個問題的人知道。 –