Determine if a service is really running

According to

How to read "service --status-all" results

service --status-all

list the running services with [+]. On the other hand, you can check the status of a service with

service <name> status

Now both commands list the service apache-htcacheclean for me

differently.

✗ ✗ sudo service apache-htcacheclean status
● apache-htcacheclean.service - Disk Cache Cleaning Daemon for Apache HTTP Server
    Loaded: loaded (/lib/systemd/system/apache-htcacheclean.service; disabled; vendor preset: enabled)
    Active: inactive (dead)

✗ ✗ sudo service --status-all
  [+] acpid
  [-] alsa-utils
  [-] anacron
  [+] apache-htcacheclean
  [-] apache2
  [+] apparmor

Why is that, what is correct now or have I overlooked anything?

0
задан 18 May 2020 в 15:04

1 ответ

Решение

Перевод с: https://forum.ubuntuusers.de/topic/laufender- service-ja-oder-nein /

Это очень хороший пример того, почему вы не должны использовать сервис команда с systemd (и, следовательно, systemctl ).

Вы можете посмотреть исходный код команды service ( / USR / SBIN / услуги ). С опцией - status-all этот скрипт изменяется на /etc/init.d и выполняет каждый исполняемый файл, расположенный там с предварительно определенная среда и статус аргумента. Из этого вызов, возвращаемое значение и выходные данные сохраняются.

Служба получает маркер [+] , если возвращаемое значение выполнено Программа имеет значение 0 , а длина записанного выхода не равна нулю. Перед что проверяется, содержит ли вывод исполняемого файла использование строки : (верхний и нижний регистры игнорируются) для использования маркер [?] поставить. Для всех остальных случаев результат будет [-] .

Теперь пример:

/etc/init.d$ ls
acpid                console-setup.sh  grub-common        lvm2           mdadm-waitidle  plymouth-log    ssh
apache2              cron              hwclock.sh         lvm2-lvmetad   networking      procps          udev
apache-htcacheclean  cryptdisks        irqbalance         lvm2-lvmpolld  nfs-common      rpcbind         ufw
apparmor             cryptdisks-early  iscsid             lxcfs          open-iscsi      rsync           uuidd
apport               dbus              keyboard-setup.sh  lxd            open-vm-tools   rsyslog
atd                  ebtables          kmod               mdadm          plymouth        screen-cleanup

/etc/init.d$ ./apache-htcacheclean status
 * apache-htcacheclean is not running

/etc/init.d$ echo $?
0

Если вы спросите службу напрямую о статусе службы, она будет вместо того, чтобы пройти через systemctl, который затем может дать гораздо больше правильный ответ.

0
ответ дан 19 June 2020 в 21:40

Другие вопросы по тегам:

Похожие вопросы: