- OK, pour commencer, je pense que vous voulez dire
ps --pidet nonps ---pid. -
Vous n'avez pas besoin de
echo $$puis tapez le nombre dansps --pid number;il suffit de taperps --pid $$. Sauf si vous parlez de# echo $$ 42 # su joe % ps --pid 42auquel cas vous faites ce qu'il faut.
-
À quoi vous attendiez-vous ?
--pid pidlist
- Sélectionner par ID de processus. Identique à -p et p .
-p pidlist- Sélectionner par PID. Cela sélectionne les processus dont les numéros d'identification de processus apparaissent dans pidlist . Identique à p et --pid .
Donc, quand vous faites
ps --pid PID_of_shell, vous obtenez la ligne depsla sortie de pour le processus shell uniquement . Vous pourriez trouverps -l | grep PID_of_shellplus utile ; il affichera toute ligne contenantPID_of_shelln'importe où, y compris dans la colonne PPID. C'est-à-dire qu'il affichera les processus enfants du shell. Mais, bien sûr,grep 42trouvera des choses comme7428. - Votre supposition est bonne ; les variables d'environnement sont transmises du parent à l'enfant. Comme indiqué ci-dessus, votre
sushell est un enfant de votre shell de connexion (ou d'un autre shell parent). Notez cependant qu'un processus peut changer d'environnement ;sudoest quelque peu connu pour cela, etsule fait aussi (par exemple, il change$USER,$LOGNAME, et$HOMEsauf si vous spécifiez--preserve-environment,et encore plus si vous spécifiez--login). De plus, un processus peut transmettre à ses enfants un environnement différent de celui qu'il utilise; le shell le fait quand vous dites quelque chose commePAGER=cat man man_page_topic. Références :1, 2. - Donc, non, si vous définissez (exportez) une variable d'environnement dans le shell d'un terminal, puis démarrez un autre terminal via le gestionnaire de fenêtres, il ne verra pas la variable d'environnement, car ce n'est pas un enfant (ou un descendant) de la coquille qui l'a placé. Mais, si vous démarrez une nouvelle fenêtre de terminal à partir du shell (par exemple, par
xterm&), alors cette fenêtre de terminal héritera de l'environnement du shell.
Qu'est-ce que le Shell sous Linux ?