Cuando se inicia un script desde el símbolo del sistema, el shell generará un subproceso para ese script. Quiero mostrar esa relación entre el proceso de nivel terminal y sus hijos utilizando ps
en una salida de estilo de árbol.
¿Cómo puedo hacer esto?
Lo que he intentado hasta ahora
archivo: script.sh
#!/bin/bash
ps -f -p$1
Luego invoco el script desde la línea de comando que pasa el id del proceso del shell del terminal:
$ ./script.sh $$
Lo que quiero es algo como esto
- proceso de shell de nivel superior (terminal)
- ./script.sh
- proceso para el
ps
comando en sí
USER PID [..]
ubuntu 123 -bash
ubuntu 1234 \_ bash ./script.sh
ubuntu 12345 \_ ps auxf
lo que estoy obteniendo es:
PID TTY STAT TIME COMMAND
14492 pts/24 Ss 0:00 -bash
pstree
?pstree
y no pude lograr que produjera resultados significativos, creo que nopstree $$
produjobash--pstree
exactamente lo que estaba buscando.ps
, entonces, ¿qué más esperas ver exceptopstree
?pstree -p $$
? O, si desea más de la línea de comando showpstree -pa $$
,. O bien, si desea mostrar todos los procesos padre que suben,pstree -psa $$
.Respuestas:
Tratar
fuente
$1
argumento a un script o usarlo$$
para mirar el árbol que comienza en el shell actual ... ¿Puede actualizar su respuesta para incluir información sobre cómo obtener un bosque a partir de un proceso especifico?Lo encontré después de leer esta respuesta del superusuario , notando este comentario
y experimentando
resultado
fuente
OUTPUT MODIFIERS: f ASCII-art process hierarchy (forest)
Puede usar el comando
ps f -g <PID>
y registrar el proceso raíz paraPID
:fuente
Prueba esto:
fuente