【问题标题】:How can I kill a process in both Windows and Linux?如何在 Windows 和 Linux 中终止进程?
【发布时间】:2011-07-10 07:15:19
【问题描述】:

是否有简单的方法可以使用进程 ID(Linux 中的 pid_t 和 Windows 中的 PROCESS_INFORMATION::dwProcessId)终止进程?

【问题讨论】:

    标签: windows winapi process posix kill-process


    【解决方案1】:

    linux:kill(pid, SIGKILL);

    Windows:TerminateProcess(Handle, 1) 你从 OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId); 获得句柄

    请注意,这两个都会简单地杀死进程,目标没有机会正常关闭。如果您想让目标有机会这样做,请在 linux 上使用 SIGHUP 然后 SIGTERM。对于 Windows,如果您有目标应用程序主窗口句柄,则可以发送 WM_SYSCOMMAND/SC_CLOSE,这可以通过 EnumWindows 和 GetWindowThreadProcessId 找到

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-12
      • 2020-11-16
      • 2013-06-29
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-02
      相关资源
      最近更新 更多