Я не знаком с тем, как в Windows убиваются процессы. В Linux «теплое» уничтожение посылает сигнал (15), который процесс может обработать, создав экземпляр обработчика сигнала. Холодное уничтожение - это сигнал (9), который ОС обрабатывает принудительным завершением процесса.
Как я могу «убить» процесс в Windows? Как это обрабатывается ОС и процессом? Какие действия выполняет ОС? Есть ли кроссплатформенный способ ответа на запрос на уничтожение / закрытие?
«Конец задачи» (и taskkill
), кажется, публикует WM_CLOSE
сообщение в окна программы. (То же самое происходит, когда вы нажимаете × Кнопка «Закрыть».) Если программа не завершится через какое-то время, пользователю будет предложено принудительно завершить ее.
"Kill Process" и taskkill /f
использовать TerminateProcess()
.
Sysinternals (теперь часть Microsoft) предлагает утилиту под названием pskill который можно использовать из командной строки для уничтожения процессов в локальной или удаленной системе.
Обычный способ убить процессы в Windows в среде графического интерфейса - использовать диспетчер задач.
с cygwin вы можете использовать кроссплатформенное убийство!