Dans System Monitor, quelle est la différence entre Kill Process et End Process?

14

Lorsque je veux tuer un processus via le Moniteur système, deux méthodes rapides me sont proposées, Kill Process et End Process. Quelle est la différence entre ces deux?

Luis Alvarado
la source

Réponses:

9

Selon le manuel du Moniteur système, vous devez normalement utiliser "Terminer le processus", et seulement en cas d'échec, utiliser "Kill Process":

Vous ne mettez généralement fin à un processus que si vous ne pouvez pas terminer le processus normalement comme décrit dans Pour terminer un processus.

Sur le plan technique, cela me fait penser que End Process envoie un SIGQUIT, ce qui permet au processus de piéger et d'effectuer un nettoyage si nécessaire, mais si cela échoue, Kill Process devrait envoyer un SIGKILL qui devrait interrompre violemment le processus, sans chance de récupération. Utiliser avec modération!

roadmr
la source
6
SIGTERM est la manière "polie" de fermer un programme, ce que envoie "End Process". gnu.org/software/libc/manual/html_node/Termination-Signals.html
Rick
8

J'étais aussi curieux, alors j'ai simplement parcouru le code source et trouvé ce qui suit dans application.cpp . Il y a plus à ce code mais je pense que ces corrélations avec les options, au moins pour System Monitor 3.8.2.1 à 3.19.3:

  • Stop Process = SIGSTOP ( signal de pause , continuons plus tard avec SIGCONT, ne tue pas le processus)
  • Processus de fin = SIGTERM ( signal de terminaison , dans le bon sens, l'application peut intercepter ce signal et déclencher des tâches d'arrêt telles que le nettoyage de fichiers temporaires)
  • Kill Process = SIGKILL ( signal d' arrêt, extrême, à utiliser uniquement si SIGTERM ne fonctionne pas, n'entraînera pas les tâches d'arrêt)

Voir cette question sur Quora à propos des signaux SIGINT, SIGTERM, SIGKILL et SIGSTOP pour une bonne explication sur tous les signaux kill / quit / shutdown et leurs différences.

Mise en évidence du code source

Elijah Lynn
la source