3

Я хочу выяснить, включена служба или нет.

С SysV Init было легко. Но со systemctl status <service name> сбивает с толку, а systemd слишком сложен, чтобы в нем разобраться .

В частности, я пытаюсь включить с

# systemctl enable watchdog.service

но после перезагрузки это дает мне этот статус:

# systemctl status watchdog.service
● watchdog.service - watchdog daemon
   Loaded: loaded (/lib/systemd/system/watchdog.service; static; vendor preset: enabled)
   Active: inactive (dead)

Но я не могу понять, что он включен, но что-то происходит, или если команда enable service не удалась.

В любой момент запуск сервиса вручную работает нормально:

# systemctl start watchdog.service
# systemctl status watchdog.service
● watchdog.service - watchdog daemon
   Loaded: loaded (/lib/systemd/system/watchdog.service; static; vendor preset: enabled)
   Active: active (running) since Qua 2016-12-21 04:03:26 BRST; 2s ago
  Process: 9111 ExecStart=/bin/sh -c [ $run_watchdog != 1 ] || exec /usr/sbin/watchdog $watchdog_options (code=exited, sta
  Process: 9109 ExecStartPre=/bin/sh -c [ -z "${watchdog_module}" ] || [ "${watchdog_module}" = "none" ] || /sbin/modprobe
 Main PID: 9115 (watchdog)
   CGroup: /system.slice/watchdog.service
           └─9115 /usr/sbin/watchdog

watchdog[9115]: int=1s realtime=yes sync=no soft=no mla=24 mem=0
watchdog[9115]: ping: no machine to check
watchdog[9115]: file: no file to check
watchdog[9115]: pidfile: no server process to check
systemd[1]: Started watchdog daemon.
watchdog[9115]: interface: no interface to check
watchdog[9115]: temperature: no sensors to check
watchdog[9115]: test=none(0) repair=none(0) alive=/dev/watchdog heartbeat=none to=root no_act=
watchdog[9115]: watchdog now set to 15 seconds
watchdog[9115]: hardware watchdog identity: Broadcom BCM2835 Watchdog timer

1 ответ1

4

systemctl status говорит нам, что устройство находится в static состоянии:

# systemctl status watchdog.service
● watchdog.service - watchdog daemon
   Loaded: loaded (/lib/systemd/system/watchdog.service; static; vendor preset: enabled)
   Active: inactive (dead)

От man systemctl:

" static " | Файл модуля не активирован и не содержит условий для включения в разделе « [Install] » файл модуля.

По сути, это означает, что в служебном файле нет раздела [Install] и, следовательно, вы не можете включить его с помощью systemctl enable . Способ активировать такой блок состоит в том, чтобы включить его в цепочку зависимостей, то есть сделать так, чтобы он был необходим или требовался для других блоков.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .