the see running que procesos proceso name mostrar identificar contar commands buscar arbol linux operating-system process

see - linux: ¿obtienes programáticamente el pid de otro proceso?



ubuntu process running (5)

Intenté con Google, pero encontré getppid() que obtiene el pid principal del proceso actual .

Necesito algo como getppid(some_other_pid) , ¿existe tal cosa? Básicamente toma el pid de algún proceso y devuelve el pid del proceso padre.


Creo que lo más simple sería abrir "/ proc" y analizar los contenidos.

Encontrará el ppid como el 4to parámetro de / proc / pid / stat



Tengo 7 años de retraso en la fiesta pero para cualquier persona que pueda encontrar esta pregunta, aquí hay una solución alternativa en OS X. Otras respuestas publicadas aquí son correctas y sysctl() hará el trabajo, pero también puede usar proc_pidinfo para obtener una Mucha información útil sobre un proceso.

#include <libproc.h> int getppid(const pid_t pid) { proc_bsdinfo info; proc_pidinfo(pid, PROC_PIDTBSDINFO, 0, &info, sizeof(info)); return info.pbi_ppid; }

Obviamente, se requiere verificación de errores adicionales.


Una forma más de obtenerlo desde la entrada proc:

cat /proc/<pid>/status | grep PPid:


o desde un shell de Unix puedes probar ps -p <child_pid> -o ppid=