Informar se um processo está sob controle systemd, init.d ou Upstart

Informar se um processo está sob controle systemd, init.d ou Upstart

É possível saber com segurança se um determinado processo do Linux foi iniciado ou ainda é supervisionado por um script init.d, Upstart ou systemd?

Responder1

Com o systemd, você pode descobrir a qual serviço do systemd um processo pertence, observando o cgroup em que ele está.

Por exemplo:

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

dirá que o dhclientprocesso faz parte do NetworkManager.servicee, portanto, é gerenciado pelo systemd.

Enquanto:

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

mostra que este processo do Firefox faz parte da sessão iniciada pelo usuário com o UID 1000.

Os processos iniciados por initscripts ou trabalhos Upstart são indistinguíveis de outros processos em segundo plano iniciados manualmente.

informação relacionada