J’ai un identifiant de processus dans un fichier “pid” Je voudrais le tuer.
Quelque chose comme:
kill -9
J’ai essayé:
kill -9 `more pid`
mais ça ne marche pas. J’ai aussi essayé xargs
mais je ne peux pas le comprendre.
Est-ce que
kill -9 $(cat pid)
travailler pour vous?
Laissez-moi résumer toutes les réponses
kill -9 $(cat pid) kill -9 `cat pid` cat pid | xargs kill -9
ma préférence est
kill -9 `cat pid`
cela fonctionnera pour n’importe quelle commande dans les backticks.
kill -9 $(cat pid)
ou cat pid | xargs kill -9
cat pid | xargs kill -9
vont tous deux fonctionner
Vous devriez commencer graduellement et ensuite passer aux choses lourdes pour tuer le processus s’il ne veut pas jouer bien.
Un signal SIGKILL (-9) ne peut pas être détecté et cela signifie que toutes les ressources détenues par le processus ne seront pas nettoyées.
Essayez d’abord d’utiliser un kill SIGTERM (-15), puis vérifiez la présence du processus en effectuant un kill -0 $ (cat pid). Si elle traîne encore, alors, certainement, battez-la avec -9.
SIGTERM peut être attrapé par un processus et tout processus correctement écrit doit être géré par un gestionnaire de signal pour capturer le SIGTERM, puis nettoyer ses ressources avant de quitter.