Comment obtenir le pid parent d'un pid donné?
Je sais que je peux vérifier manuellement sous / proc, je me demande s’il existe un moyen intelligent / meilleur d’atteindre cet objectif dans Ubuntu. Notez que le parent peut ou peut ne pas être tué.
Merci
command-line
bash
process
cache
la source
la source
ps -o args ...
les résultats, mais cela sent un peu.ppid=
mais avant le pid semble être nécessaire. J'ai eu des résultats différents si je l'ai omis.En utilisant uniquement une variable shell pour obtenir le PID parent:
si vous avez besoin de la commande de ce pid parent:
si vous avez besoin de la ligne de commande complète (avec toutes les options):
Explication
$PPID
est défini par le shell, c'est le PID du processus parent/proc/
, vous avez quelques dirs avec le PID de chaque processus. Ensuite, si vouscat /proc/$PPID/comm
renvoyez le nom de la commande du PIDChèque homme proc
la source
PPID
est défini dans le cadre de la norme POSIX, donc tout shell compatible POSIX doit le définir correctement. Voir pubs.opengroup.org/onlinepubs/9699919799/utilities/…Utiliser
pstree
par nom de commandepstree
Vous pouvez utiliser le nom du processus enfant pour obtenir le code de processus (PID), ainsi que les parents, les grands-parents et tous les enfants du processus enfant:Dans ce cas, il
sleep
s'agit de la commande enfant et de son PID8414
. Son ID parent est 841 et s'appelledisplay-auto-brightness
. Le grand - parent est une coque (sh
) avec un identifiant de processus839
. L'arrière-grand-parent estcron
doté d'un ID de processus de795
. L'arrière-arrière-grand-parent est égalementcron
doté d'un ID de processus de763
.Si vous souhaitez rechercher par ID de processus
sleep
au lieu de nom, vous pouvez utiliser:Notez que l'
sleep
ID de processus a été remplacé par14653
. Le parent (PID 841) dort pendant 1 minute, se réveille pendant une fraction de seconde, puis lance une nouvellesleep
commande qui obtient un nouvel ID de processus. C'est une autre raison pour laquelle la recherchesleep
est plus facile que la recherche par ID de processus.Ce code provient de: Ajustez automatiquement la luminosité de l'écran en fonction du lever et du coucher du soleil et est adapté à cette question.
Pour voir une chaîne imbriquée jusqu'au processus de démarrage, utilisez le PID au lieu du nom:
Remarque: une minute s'est écoulée et la commande de veille obtient un nouveau PID (8541).
la source
807
oucron
et la même ligne serait réaccordée, ainsi que plus d'enfants si elle était générée. Mais la question était de trouver le parent, pas tous les enfants.1
. Je ne pense pas que vous puissiez tuer le PID 1.ps -efj
peut également être utilisé pour le même.Par exemple,
la source