Я хочу проверить, работает ли одна (или все) служба, если да, остановите ее
#!/bin/bash
# Define an array of processes to be checked.
# If properly quoted, these may contain spaces
check_process=( "nagios" "httpd" )
for p in "${check_process[@]}"; do
if pgrep "$p" > /dev/null; then
echo "Process \`$p' is running, stopping it"
service $p stop
else
echo "Process \`$p' is not running"
fi
done
Для службы httpd все работает нормально, скрипт правильно определяет httpd
состояние службы. У меня проблемы с обнаружением nagios
состояния сервиса. Но хотя служба nagios
не запущена, сценарий показывает, что она работает
Process `nagios' is running, stopping it
Stopping nagios:No lock file found in /usr/local/nagios/var/nagios.lock
Process `httpd' is not running
Существует ли более элегантный способ определения, работает ли служба nagios, без проверки наличия файла nagios.lock
?
pgrep nagios
не показывает вывод, когда служба не настраивается.