Назад | Перейти на главную страницу

Как автоматически перезагружать службу httpd при изменениях с помощью Supervisord?

Я работаю в контейнере Docker, который пока готов к работе:

Я украл идею из этого nginx.conf где они слушают, используя inotify для изменений (создание, удаление, изменение, перемещение, атрибуция) на /etc/nginx/ и /data/conf/nginx/ и если это произойдет, Supervisord автоматически перезагрузит Nginx. Это позволит мне забыть о перезапуске Apache (если это возможно, потому что мой опыт работы с Docker заключается в том, что я бьюсь в контейнер и выполняю service httpd restart выход контейнера) и / или останавливать / строить / запускать контейнер каждый раз, когда я хочу добавить новый VH в Apache.

Сказав, что я ищу помощь с этой строкой:

[program:nginx-reload]
command=bash -c 'while inotifywait -q -r -e create,delete,modify,move,attrib --exclude "/\." /etc/nginx/ /data/conf/nginx/; do nginx -t && nginx -s reload; done'

Поскольку я не уверен, как написать это для достижения того же, используя httpd. Может ли кто-нибудь мне помочь?

Программа для супервайзера должна быть такой:

[program:httpd-reload]
command=bash -c 'while inotifywait -q -r -e create,delete,modify,move,attrib --exclude "/\." /etc/httpd/ /data/conf/httpd/; do apachectl -t && service httpd restart; done'

Обратите внимание на расположение журналов, возможно, вам придется исключить его, добавив еще один --exclude "/etc/httpd/logs" или путь, по которому находятся журналы.