Windows上有posix SIGTERM替代品吗? - (轻轻杀死控制台应用程序)

Pio*_*pla 6 .net c# windows winapi sigterm

我有一个由GUI应用程序运行的控制台守护程序.当GUI应用程序终止时,我也想停止守护进程.

我如何在Windows上以温和的方式做到这一点?

在Linux上,我只是使用SIGTERM在Windows上是否有类似的机制用于控制台应用程序?

为了提供更多细节,守护进程应用程序是用python编写的,gui是用C#和windows表单编写的.

Sev*_*yev 1

定义“温柔”:)

我假设守护进程和 GUI 之间已经存在一种通信机制。只需引入“退出”命令并发送即可。

如果您想终止守护进程,即使它正忙于执行某些操作(或被冻结),请使用 TerminateProcess()。

为了充分利用两者,您可以发送“quit”,然后等待进程句柄一段时间(WaitForSingleObject())。如果守护进程在 5 秒内没有终止,则终止它。

如果守护程序的主线程容易出现长时间的繁忙活动,请让守护程序启动一个后台线程,该线程除了等待指定事件外什么也不做。要向该线程发出信号,请从 GUI 按名称打开事件,然后引发它。这取决于守护进程在检测到事件时要做什么,但至少它将是受控关闭。

  • 那么...没有快速的命令行修复方法吗?awww...我刚刚最小化了系统托盘弹出窗口,希望以干净的方式关闭 explorer.exe 以使其重新启动并运行。 (2认同)