¿Cómo obtener padres pid de un niño pid pid?
Sé que puedo verificarlo manualmente en / proc, me pregunto si hay una manera inteligente / mejor de lograr esto en Ubuntu. Tenga en cuenta que el padre puede o no ser asesinado.
Gracias
command-line
bash
process
cache
fuente
fuente
ps -o args ...
en los resultados, pero eso tiene un poco de olor.ppid=
pero antes del pid parece ser necesario. Obtuve resultados diferentes si lo omití.Usando solo la variable de shell para obtener el PID primario:
si necesita el comando de este padre pid:
si necesita la línea de comando completa (con todas las opciones):
Explicación
$PPID
está definido por el shell, es el PID del proceso padre/proc/
, tienes algunos directorios con el PID de cada proceso. Entonces, si ustedcat /proc/$PPID/comm
, se hace eco del nombre del comando del PIDComprobar hombre proc
fuente
PPID
se define como parte del estándar POSIX, por lo que cualquier shell compatible con POSIX debe configurarlo adecuadamente. Ver pubs.opengroup.org/onlinepubs/9699919799/utilities/…Utilizando
pstree
por nombre de comandoUtilizando
pstree
puede buscar por el nombre del proceso secundario y obtener el ID de proceso (PID) junto con los padres, abuelos y cualquier elemento secundario del proceso secundario:En este caso
sleep
es el comando hijo y su PID es8414
. Su identificación principal es 841 y se llamadisplay-auto-brightness
. El abuelo es un shell (sh
) con un ID de proceso de839
. El bisabuelo tienecron
una identificación de proceso de795
. El tatarabuelo tambiéncron
tiene un ID de proceso763
.Si desea buscar por ID de proceso en
sleep
lugar de nombre, puede usar:Observe que la
sleep
ID del proceso cambió a14653
. El padre (PID 841) duerme durante 1 minuto, se despierta por una fracción de segundo y luego inicia un nuevosleep
comando que obtiene una nueva ID de proceso. Esta es otra razón por la cual buscarsleep
es más fácil que buscar por ID de proceso.Este código fue tomado de: Ajusta automáticamente el brillo de la pantalla según el amanecer y el atardecer y se adapta a esta pregunta.
Para ver una cadena anidada hasta el proceso de inicio, use el PID en lugar del nombre:
Nota: Ha pasado otro minuto y el comando de suspensión obtiene un nuevo PID (8541).
fuente
807
ocron
y la misma línea se volvería a acortar, así como a más niños si se genera. Pero la pregunta era sobre encontrar al padre, no a todos los hijos.1
. No creo que puedas matar el PID 1.ps -efj
También se puede utilizar para lo mismo.Por ejemplo,
fuente