我创建了一个命令行应用程序,它产生一个进程(用户定义的命令,通常是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:对不起,我没有。也许你应该为这个问题添加一个合适的语言标签,让那些知道这个问题的人知道。 –