Как проверить, запущена ли служба демона с помощью задания или скрипта Cron?

Как настроить задание cron для мониторинга нескольких PI (через SSH), на которых выполняется один и тот же сценарий демона (служба)?

Я думал об использовании задания cron для отслеживания статуса службы и записи в файл на моем сервере, если статус службы активен или неактивен, а затем я могу позже использовать содержимое этого файла для отображения результатов Cron работа на веб-странице (но это я выясню позже).

Я открыт для других вариантов, если кто-то может найти более простой способ, используя другой инструмент, например, Bash-скрипт, Python-скрипт, PHP и т. д.,

1

Решение

По вашему вопросу

Как проверить, запущена ли служба демона

в RHEL / CentOS v4.x / 5.x / 6.x и Fedora Linux (более старая версия) Проверьте службу Cron
Вы можете просто использовать любую из следующих команд, чтобы увидеть, работает ли crond или нет, введите:

$ pgrep crond

ИЛИ ЖЕ

$ service crond status

Пример выходов:

# crond (pid 4370) is running...

Если он не запущен, введите следующие две команды для запуска crond:

$ chkconfig crond on
$ service crond start

Убедитесь, что cron запущен, просмотрев файл журнала, введите:

$ tail -f /var/log/cron

Замечание о CentOS / RHEL v7.x + и последней версии Fedora Linux
Вам нужно использовать следующую команду, чтобы узнать, работает ли crond или нет:

$ systemctl status crond.service

Пример выходов:

Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)
Active: active (running) since Tue 2015-05-19 14:53:32 EDT; 3min 7s ago
Main PID: 1292 (crond)
CGroup: /system.slice/crond.service
└─1292 /usr/sbin/crond -n

Если не работает, настройте службу crond на автоматический запуск при загрузке:

$ sudo systemctl enable crond.service
$ sudo systemctl start crond.service

Замечание о службе Cron в Debian / Ubuntu Linux (более старая версия)
В Debian и Ubuntu Linux cron регистрирует свои действия в системном журнале, то есть использует файл / var / log / messages:

$ tail -f /var/log/messages

Чтобы узнать, запущен ли демон cron, введите:

$ pgrep cron

Если он не запущен, введите:

$ update-rc.d cron defaults
$ /etc/init.d/cron start

Замечание о Debian Linux v8.x + и последней версии Ubuntu Linux
Синтаксис следующий, чтобы проверить, работает ли служба cron или нет:

# systemctl status cron

Пример выходов:

â— cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled)
Active: active (running) since Tue 2015-05-19 11:49:32 IST; 12h ago
Docs: man:cron(8)
Main PID: 1053 (cron)
CGroup: /system.slice/cron.service
├─1053 /usr/sbin/cron -f
└─3020 /usr/bin/atop -a -w /var/log/atop/atop_20150520 600

Если не работает, настройте службу crond на автоматический запуск при загрузке:

$ sudo systemctl enable cron.service
$ sudo systemctl start cron.service
0

Другие решения

Я перепробовал много ответов (в том числе и на этой странице), но ни один код не работал для nginx.

Я не знаю точно, почему коды не запускали службу nginx, даже если некоторые из них определили, что она успешно отключена.

Единственное, что я нашел для работы, было это.

Добавление файла сценария bash с кодом:

(я добавил код в файл /opt/nginxstartifdown.sh)

#!/bin/bash

service=$@
/bin/systemctl -q is-active "$service.service"status=$?
if [ "$status" == 0 ]; then
echo "OK"else
/bin/systemctl start "$service.service"fi

Добавление этого к работе cron (sudo crontab -e)

* * * * * /opt/nginxstartifdown.sh nginx > /dev/null

ссылка от: (не мой сайт, не мой контент)
https://maslosoft.com/kb/watching-for-service-with-cron/

Делитесь им так, чтобы он мог помочь кому-то, ищущему nginx, когда он выключается.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector