#!/bin/sh
services=( httpd named proftpd mysqld dovecot postfix webmin)
for service in ${services[@]}; do
if ps ax | grep -v grep | grep $service > /dev/null; then
echo "$service service running, everything is fine";
else
echo "$service is not running";
service $service start;
fi;
done;
Хорошо работает здесь ... возможно, вы захотите добавить после #!/bin/sh
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/opt/usr/bin:/opt/usr/sbin:/usr/local/bin:/usr/local/sbin"
Вы также можете сделать chmod 775 /etc/mycron/checkServices.sh
, чтобы сделать его исполняемым, что необходимо для cron.Тогда вам также не нужно было бы вызывать bash /etc/mycron/checkServices.sh
, и вы можете просто позвонить /etc/mycron/checkServices.sh
, #!/bin/sh
говорит исполняемому загрузчику загрузить файл с /bin/sh
, если вы вызываете bash /etc/mycron/checkServices.sh
, вы запустите bash, который в свою очередь начнется/bin/sh
чтобы наконец выполнить ваш скрипт.
Поскольку цикл for в bash / sh использует переменную IFS ($IFS
) в качестве разделителя, вы также можете сделать строку services=(httpd named proftpd mysqld dovecot postfix webmin)
как services="httpd named proftpd mysqld dovecot postfix webmin"
, так какболее общий