Erkennen, ob ein Prozess unter der Kontrolle von systemd, init.d oder Upstart steht

Erkennen, ob ein Prozess unter der Kontrolle von systemd, init.d oder Upstart steht

Ist es möglich, für einen bestimmten Linux-Prozess zuverlässig festzustellen, ob er gestartet wurde oder noch von einem init.d-Skript, Upstart oder systemd überwacht wird?

Antwort1

Mit systemd können Sie herausfinden, zu welchem ​​systemd-Dienst ein Prozess gehört, indem Sie sich die Kontrollgruppe ansehen, in der er sich befindet.

Zum Beispiel:

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

wird Ihnen mitteilen, dass der dhclientProzess Teil von ist NetworkManager.serviceund somit von systemd verwaltet wird.

Wohingegen:

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

zeigt, dass dieser Firefox-Prozess Teil der Sitzung ist, die vom Benutzer mit der UID 1000 gestartet wurde.

Von Initskripten oder Upstart-Jobs gestartete Prozesse sind von anderen manuell gestarteten Hintergrundprozessen nicht zu unterscheiden.

verwandte Informationen