windows - 捕获 Windows 终端正在运行的进程关闭

标签 windows process terminal signals command-prompt

在命令提示符窗口中,我有一个正在运行的进程。当该进程仍在执行时,我单击命令提示符窗口一角的(红色)“X”。命令提示符窗口关闭,正在运行的进程终止。

在 Linux 上,关闭正在运行的进程的父终端将向该进程发送 SIGHUP。如何在 Windows 上捕获此事件?

最佳答案

SIGHUP 的等效功能是通过您在 SetConsoleCtrlHandler 注册的回调提供的。 。您的回调函数将在 dwCtrlType = CTRL_CLOSE_EVENT 的任意线程池线程上调用。您有 5 秒的时间进行清理,无法取消关闭。

示例代码位于 this MSDN article

关于windows - 捕获 Windows 终端正在运行的进程关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20511182/

相关文章:

terminal - 安装 zsh 并更改字体样式后,我在 VSCode 中的终端字体很小?

windows - 如何检测文件夹是否为空(Windows 批处理文件)?

java - 我们如何检测 main() 线程是否已死亡但所有生成的 thread() 线程都在运行?

process - systemd软件看门狗和 "normal"进程监控的区别

multithreading - 如何在aix上查看正在运行的进程的所有线程堆栈?

macos - 找不到家园命令

macos - 为什么我不能 promise ? (您的分支是最新的 'origin/master' ,没有添加任何更改以提交)

windows - 从 Node.js 使用 WinRT

c++ - 不同文件夹中不同 .cpp 文件的 Makefile

c++ - 如何为 MinGW 用户安装 gcc-arm-none-eabi?