кто управляет linux-сервисом?

Как быстро узнать, кто контролирует некоторые службы Linux?

Я устал ковырять / etc, чтобы узнать, контролирует ли initd, upstart, systemd или supervisord некоторую услугу.

  • Как узнать эфемерный порт для службы?
  • Безопасно ли отключать hddtemp.service
  • Что такое logcheck, и почему он потребляет 100% CPU из-за синего?
  • Как найти в Linux, если mule запущен
  • Остановка службы синхронная или асинхронная?
  • Почему у меня есть 2 службы SSH?
  • smartd.service, похоже, не работает после перезагрузки, только после ручного перезапуска
  • One Solution collect form web for “кто управляет linux-сервисом?”

    Если вы не уверены, какой init, вы можете догадаться из ps | grep -E "systemd|upstart" ps | grep -E "systemd|upstart" . (Некоторые блестящие systemd могут присутствовать в старых системах выскочки, но не наоборот). Вы можете также проверить надзорный орган.

    Googling initd рассказывает мне о /etc/init.d поэтому я предполагаю, что это то, что вы имели в виду … Извините, но ничего не приходит на ум для обнаружения скриптов sysV, кроме поиска в / etc. (Если вы застряли в sysvinit, я предполагаю, что вы также хотите /etc/init.d/foo status или /etc/init.d/foo status service foo status , чтобы убедиться, что ваша служба фактически запущена из sysvinit. Это не скажет вам, к сожалению, были запущены как сисвинитом, так и надзирателем).

    На выскочке я считаю, что легко найти работу, потому initctl list initctl показывает pids. Поэтому, если он есть, это либо работа с выскочкой, либо скрипт sysV, работающий под обратной совместимостью (и см. Выше, чтобы обнаружить разницу).

    В systemd вы можете проверить заданный pid, используя поле cgroups ps , см. Ниже. Если команда .service говорит .service она должна быть запущена systemd. Если вы не против искать имя потенциально неоднозначного имени , systemd-cgls легче запомнить. Тогда я думаю, systemctl status foo даже даст вам достаточно информации для обнаружения sysV init-script для foo.service.

     $ ps xawf -eo pid,user,cgroup,args PID USER CGROUP COMMAND 2 root - [kthreadd] 3 root - \_ [ksoftirqd/0] [...] 4281 root - \_ [flush-8:0] 1 root name=systemd:/systemd-1 /sbin/init 455 root name=systemd:/systemd-1/sysinit.service /sbin/udevd -d 28188 root name=systemd:/systemd-1/sysinit.service \_ /sbin/udevd -d 28191 root name=systemd:/systemd-1/sysinit.service \_ /sbin/udevd -d 1096 dbus name=systemd:/systemd-1/dbus.service /bin/dbus-daemon --system --address=systemd: --nofork --systemd-activation [...] 

    Для супервизора используйте supervisord status .

    Linux и Unix - лучшая ОС в мире.