Je ne connais pas la façon dont les processus sont tués dans Windows. Sous Linux, un kill "chaud" envoie un signal (15) que le processus peut gérer en instanciant un gestionnaire de signal. Un kill à froid est un signal (9) que l'OS gère en tuant le processus avec force.
Comment "tuer" un processus sous Windows? Comment est-il géré par OS et par le processus? Quelles actions le système d'exploitation effectue-t-il? Existe-t-il un moyen multiplateforme de répondre à une demande de suppression / fermeture?
SIGTERM
, 9 estSIGKILL
.Réponses:
"Fin de tâche" (et
taskkill
) apparaît pour publier unWM_CLOSE
message dans les fenêtres du programme. (La même chose se fait lorsque vous cliquez sur le bouton ×"Fermer".) Si le programme ne se ferme pas dans un certain temps, l'utilisateur est invité à terminer le programme avec force."Kill Process" et
taskkill /f
utilisationTerminateProcess()
.la source
ntsd -p <pid> -c q
, qui utilise lentsd
débogueur; Je ne sais pas ce qui se passe lorsqu'un programme est tué de cette façon. ( pokes @Chris )taskkill
et il répond par: "Ce processus ne peut être interrompu qu'avec force (avec l'option / F)." Alors oui, le seul choix qui reste estTerminateProcess()
.Sysinternals (qui fait maintenant partie de Microsoft) propose un utilitaire appelé pskill qui peut être utilisé à partir de la ligne de commande pour tuer les processus sur le système local ou sur des systèmes distants.
La manière habituelle de tuer les processus dans Windows dans un environnement GUI est d'utiliser le Gestionnaire des tâches.
la source
avec cygwin vous pouvez utiliser un kill multi-plateforme!
la source