Publier cette question parce que j'ai été surpris de ne pas trouver de réponse directe; excuses s'il s'agit d'un doublon - j'ai regardé!
J'ai entendu cela kill -9
ou kill -SIGKILL
c'est mauvais, mais je ne comprends pas pourquoi. Si je ne devrais pas, kill -9
que dois- je faire pour tuer un processus?
kill -9
it ", OP dit " super, ça a fonctionné! Je m'en souviendrai à partir de maintenant! ", Et B intervient pour avertir "l' attentekill -9
est dangereuse! " Seulement après coup.Réponses:
SIGKILL
retire le tapis de votre processus de course, le terminant immédiatement. Pour les programmes très simples, c'est très bien; dans la pratique cependant, il existe très peu de programmes "simples".Sous les couvertures, même les programmes d'apparence triviale font toutes sortes de travaux transactionnels dont ils ont besoin pour nettoyer avant de se terminer (pensez au
finally
bloc en Java et dans d'autres langages de programmation), tels que la fermeture des poignées de ressources, la suppression de fichiers temporaires et le vidage des données de mémoire sur disque. Vous ne pouvez pas prévoir quand un programme pourrait faire quelque chose comme ça.Si vous êtes chanceux, vous ne remarquerez rien de mal si vous envoyez un
SIGKILL
, mais vous ne pouvez pas être chanceux pour toujours, et vous ne saurez peut-être rien qui ne va pas tant qu'il n'est pas trop tard pour récupérer ce qui a été perdu.Vous ne devriez presque jamais avoir besoin d'envoyer un
SIGKILL
, et vous devez être sûr d'avoir épuisé vos alternatives avant de le faire. Dans de nombreux cas, le redémarrage (qui finira par envoyer desSIGKILL
programmes malveillants) est plus sûr que l'envoi manuel d'unSIGKILL
vous - même. Je peux probablement compter sur une main le nombre de fois où j'ai eu besoin d'envoyer unSIGKILL
(et probablement tous de ma propre fabrication).De manière générale, vous pouvez utiliser Ctrl+ C(qui envoie le processus de premier plan a
SIGINT
) ouSIGTERM
(comme dans "terminer") pour demander à un processus d'arrêter ce qu'il fait et de quitter.Quelques lectures supplémentaires:
kill
signaux-9
dire?kill
signauxla source