Saiba se um systemd está realmente habilitado ou não

2

Eu quero descobrir se um serviço está ativado ou não.

Com o SysV Init foi fácil. Mas com systemctl status <service name> é confuso e systemd é muito complexo para cavar.

Especificamente, tento ativar com

# systemctl enable watchdog.service

mas depois da reinicialização, isso me dá esse status:

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

Mas não consigo entender se o id está habilitado, mas algo está acontecendo ou se o comando enable service falhou.

A qualquer momento, iniciar o serviço manualmente funciona bem:

# 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
    
por Allan Deamon 21.12.2016 / 07:09

1 resposta

3

systemctl status nos informa que a unidade está no status static :

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

De man systemctl :

"static" | The unit file is not enabled, and has no provisions for enabling in the "[Install]" unit file section.

Isso basicamente significa que não há [Install] seção no arquivo de serviço e, portanto, você não pode habilitá-lo por systemctl enable . A maneira de habilitar essa unidade é puxá-la para uma cadeia de dependência, ou seja, torná-la necessária ou desejada por outras unidades.

    
por 21.12.2016 / 11:18

Tags