Linux: obtenir le code de sortie de la commande kill
Si j'envoie un SIGTERM
signal à un processus à l'aide de la kill
commande, je m'attends à un code de sortie, mais j'ai toujours 0 (zéro) lors de l'exécution de la commande ci-dessous après le meurtre d'un processus:
echo $?
En fonction de la réponse dans ce post, je devrais obtenir 143 lors de l'envoi d'un SIGTERM
à un processus: Toujours d'application Java à la fin avec "la Sortie 143" Ubuntu
Mais je n'obtiens que le code de sortie. Pourquoi?
OriginalL'auteur Rox | 2011-11-24
Vous devez vous connecter pour publier un commentaire.
Le code de sortie que vous obtenez est pour le
kill
commande elle-même. 0 signifie qu'il a réussi, c'est à dire les autres processus reçu le signal que vous l'avez envoyé.kill
juste de ne pas signaler le statut de sortie pour le processus, car il ne peut même pas être sûr que l'autre est sorti de la suite du signal envoyé.Je crois que le processus parent dispose d'un accès direct à la sortie de statut, donc pas directement.
Il est possible de vérifier le code de sortie du processus d'être tué. L'utilisation de ptrace à joindre à elle avant d'envoyer le signal. (C'est probablement le plus d'ennuis que cela vaut la peine!) Sinon, le parent de l'tués rapport sur le processus de son statut de sortie.
Aucune référence pour le code de sortie de la
kill
de commande lui-même?merci. La plupart des pages de manuel n'en parle pas, mais il semble au moins certains le font (man7.org/linux/man-pages/man1/kill.1.html). Dieu sait si cette dernière s'applique à tous les systèmes qui ne l'a pas mentionné dans leur homme. Un jour je vais comprendre pourquoi la même commande a 19 pages de man (je suppose qu'ils ont à faire avec les différentes distributions mais quand même)...
OriginalL'auteur Fred Foo