Saber si un proceso está bajo el control de systemd, init.d o Upstart

Saber si un proceso está bajo el control de systemd, init.d o Upstart

¿Es posible saber de manera confiable para un proceso de Linux determinado si se inició o aún está supervisado por un script init.d, Upstart o systemd?

Respuesta1

Con systemd, puedes encontrar a qué servicio systemd pertenece un proceso mirando el cgroup en el que se encuentra.

Por ejemplo:

$ ps -eo pid,comm,cgroup | grep dhclient
6476 dhclient 8:devices:/system.slice NetworkManager.service,1:name=systemd:/system.slice/NetworkManager.service

le dirá que el dhclientproceso es parte de NetworkManager.service, y por lo tanto es administrado por systemd.

Mientras que:

$ ps -eo pid,comm,cgroup | grep firefox
3302 firefox 8:devices:/user.slice,1:name=systemd:/user.slice/user-1000.slice/session-c2.scope

muestra que este proceso de Firefox es parte de la sesión iniciada por el usuario con el UID 1000.

Los procesos iniciados mediante scripts de inicio o trabajos Upstart no se pueden distinguir de otros procesos en segundo plano iniciados manualmente.

información relacionada