Почему этот сценарий не запускает веб-сервер apache?

Я использую этот сценарий для перезапуска веб-сервера 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 не был включен в путь. Я вошел и жестко запрограммировал абсолютный путь к служебной команде, и теперь он должен работать.

Спасибо.

0
задан 31 December 2019 в 23:20
1 ответ

Я думаю, что решил его. Я посмотрел на почту корня и заметил, что крон сообщал, что не может найти "сервисную" команду. Таким образом,/usr/sbin не был включен в ПУТЬ. Я вошел и hardcoded полный путь к сервисной команде, и теперь это должно работать.

можно или установить ПУТЬ наверху сценария оболочки, или Вы можете hardcode полные пути ко всем командам, которые Вы называете из своего сценария.

Это было полезно в нахождении моего решения.

https://askubuntu.com/questions/23009/why-crontab-scripts-are-not-working

0
ответ дан 2 January 2020 в 11:02

Теги

Похожие вопросы