Nie znam sposobu, w jaki procesy są zabijane w systemie Windows. W Linuksie „ciepłe” zabicie wysyła sygnał (15), który proces może obsłużyć, tworząc instancję procedury obsługi sygnału. Zimne zabójstwo jest sygnałem (9), który system operacyjny obsługuje, zabijając proces z użyciem siły.
Jak mogę „zabić” proces w systemie Windows? Jak obsługuje system operacyjny i proces? Jakie działania wykonuje system operacyjny? Czy istnieje wieloplatformowy sposób reagowania na żądanie zabicia / zamknięcia?
SIGTERM
9 toSIGKILL
.Odpowiedzi:
taskkill
Pojawia się „Zakończ zadanie” (i ), aby opublikowaćWM_CLOSE
komunikat w oknach programu. (To samo dzieje się po kliknięciu przycisku ׄZamknij”). Jeśli program nie zakończy się w określonym czasie, użytkownik zostanie poproszony o wymuszenie jego zakończenia.„Zabij proces” i
taskkill /f
użyjTerminateProcess()
.źródło
ntsd -p <pid> -c q
użycientsd
debuggera; Nie jestem pewien, co się stanie, gdy program zostanie zabity w ten sposób. ( pokes @Chris )taskkill
i odpowiada: „Ten proces można zakończyć tylko siłą (z opcją / F)”. Więc tak, pozostaje tylko wybórTerminateProcess()
.Sysinternals (obecnie część firmy Microsoft) oferuje narzędzie o nazwie pskill, którego można używać z wiersza poleceń do zabijania procesów w systemie lokalnym lub w systemach zdalnych.
Zwykłym sposobem na zabicie procesów w systemie Windows w środowisku GUI jest użycie Menedżera zadań.
źródło
z cygwin możesz użyć zabijania na wielu platformach!
źródło