Можно ли достоверно определить для данного процесса Linux, запущен ли он или все еще контролируется сценарием init.d, Upstart или systemd?
1 ответ
1
С помощью systemd вы можете узнать, к какой службе systemd принадлежит процесс, просмотрев группу, в которой он находится.
Например:
$ ps -eo pid,comm,cgroup | grep dhclient
6476 dhclient 8:devices:/system.slice NetworkManager.service,1:name=systemd:/system.slice/NetworkManager.service
скажет вам, что процесс dhclient
является частью NetworkManager.service
и, таким образом, управляется systemd.
В то время как:
$ ps -eo pid,comm,cgroup | grep firefox
3302 firefox 8:devices:/user.slice,1:name=systemd:/user.slice/user-1000.slice/session-c2.scope
показывает, что этот процесс Firefox является частью сеанса, запущенного пользователем с UID 1000.
Процессы, запущенные initscripts или заданиями Upstart, неотличимы от других запускаемых вручную фоновых процессов.