Я использую этот сценарий для перезапуска веб-сервера apache2, поскольку процесс обновления letsencrypt ssl не перезапускает его после завершения своих действий.
Когда я тестирую его вручную, остановив сервер и запустив скрипт. Работает нормально. Однако, когда это часть запущенного задания cron, веб-сервер не запускается. Однако в / var / log / syslog у меня есть много строк, в которых говорится, что он пытается запустить веб-сервер.
Вот сценарий:
#!/bin/sh
ps auxw | grep '/usr/sbin/apache2' | grep -v grep > /dev/null
if [ $? != 0 ]
then
logger "starting apache2 - keep-apache2-alive"
sudo service apache2 start
else
logger "apache2 is running - keep-apache2-alive"
fi
Запись crontab выглядит так, выполняется каждые 2 минуты.
*/2 * * * * /home/user/scripts/keep-apache-running.sh
] Записи в / var / log / syslog выглядят так:
Dec 30 23:34:01 node root: apache2 is running - keep-apache2-alive
Dec 30 23:36:01 node root: apache2 is running - keep-apache2-alive
Dec 30 23:38:01 node root: starting apache2 - keep-apache2-alive
Dec 30 23:40:01 node root: starting apache2 - keep-apache2-alive
Dec 30 23:42:01 node root: starting apache2 - keep-apache2-alive
Dec 30 23:44:01 node root: starting apache2 - keep-apache2-alive
Dec 30 23:46:01 node root: starting apache2 - keep-apache2-alive
Dec 30 23:48:01 node root: starting apache2 - keep-apache2-alive
Dec 30 23:50:01 node root: starting apache2 - keep-apache2-alive
Думаю, я решил эту проблему. Я просмотрел почту root и заметил, что cron сообщает, что не может найти команду "service". Таким образом, / usr / sbin не был включен в путь. Я вошел и жестко запрограммировал абсолютный путь к служебной команде, и теперь он должен работать.
Спасибо.
Я думаю, что решил его. Я посмотрел на почту корня и заметил, что крон сообщал, что не может найти "сервисную" команду. Таким образом,/usr/sbin не был включен в ПУТЬ. Я вошел и hardcoded полный путь к сервисной команде, и теперь это должно работать.
можно или установить ПУТЬ наверху сценария оболочки, или Вы можете hardcode полные пути ко всем командам, которые Вы называете из своего сценария.
Это было полезно в нахождении моего решения.
https://askubuntu.com/questions/23009/why-crontab-scripts-are-not-working