Как я могу убить процесс в Windows и Linux? - PullRequest
0 голосов
/ 07 марта 2011

Есть ли простой способ убить процесс, используя его идентификатор процесса (pid_t в Linux и PROCESS_INFORMATION::dwProcessId в Windows)?

1 Ответ

5 голосов
/ 07 марта 2011

Linux: kill(pid, SIGKILL);

Windows: TerminateProcess(Handle, 1) где вы получаете Handle от OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);

Обратите внимание, что оба из них просто убьют процесс, цель не имеет возможности правильно завершить работу. Если вы хотите, чтобы у цели была возможность сделать это, используйте SIGHUP, а затем SIGTERM в Linux. Для окон вы можете отправить WM_SYSCOMMAND / SC_CLOSE, если у вас есть дескриптор главного окна целевых приложений, это можно найти с помощью EnumWindows и GetWindowThreadProcessId

...