У меня есть скрипт в cron, чтобы проверить memcached и перезапустить его, если он не работает. По какой-то причине это не работает. Script, с разрешениями: записьCron-скрипт для перезапуска memcached не работает
-rwxr-xr-x 1 root root 151 Aug 28 22:43 check_memcached.sh
Crontab:
*/5 * * * * /home/mysite/www/check_memcached.sh 1> /dev/null 2> /dev/null
содержание сценария:
#!/bin/sh
ps -eaf | grep 11211 | grep memcached
if [ $? -ne 0 ]; then
service memcached restart
else
echo "eq 0 - memcache running - do nothing"
fi
Он отлично работает, если я запустить его из командной строки, но прошлой ночью Memcached упал и он не был перезапущен из cron. Я вижу, что cron запускает его каждые 5 минут.
Что я делаю неправильно?
Нужно ли использовать следующее вместо перезапуска службы memcached?
/etc/init.d/memcached restart
У меня есть еще один скрипт, который проверяет, работает ли мой экземпляр lighttpd, и он работает нормально. Он работает несколько иначе, чтобы проверить, работает ли он, но использует вызов init.d для перезапуска.
Редактировать - Resolution: Использование /etc/init.d/memcached restart решает эту проблему.
спасибо. Вы правы - sbin не находится на пути к cron, поэтому «сервис» не работает. http://stackoverflow.com/questions/8127433/unable-to-run-a-service-command-via-cron – 63bus