shell Linux: Comment lire un argument de commande depuis un fichier?

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.