Я практикую использование linux/Ubuntu.
Я установил apache2 на своем облачном сервере (Lightsail). Я также установил Monit для контроля Apache2. Контроль работает правильно, и Monit перезапускает Apache2, когда он снижается (я сделал остановку sudo/etc/init.d/apache2 для тестирования его). IP (в браузере) пошел недоступный и затем возвратился онлайн.
Проблема, с которой я сталкиваюсь, - то, что, когда Monit перезапускает апача, состояние sudo/etc/init.d/apache2 показывает сервис как вниз, но апач работает (IP проверил браузер).
ubuntu@webserver:~$ sudo /etc/init.d/apache2 status
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: inactive (dead) since Thu 2017-04-27 22:21:17 UTC; 2min 51s ago
Docs: man:systemd-sysv-generator(8)
Process: 22026 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 20709 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
Process: 21958 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CPU: 125ms
Apr 27 22:17:25 webserver systemd[1]: Starting LSB: Apache2 web server...
Apr 27 22:17:25 webserver apache2[21958]: * Starting Apache httpd web server apache2
Apr 27 22:17:26 webserver apache2[21958]: *
Apr 27 22:17:26 webserver systemd[1]: Started LSB: Apache2 web server.
Apr 27 22:21:17 webserver systemd[1]: Stopping LSB: Apache2 web server...
Apr 27 22:21:17 webserver apache2[22026]: * Stopping Apache httpd web server apache2
Apr 27 22:21:17 webserver apache2[22026]: *
Apr 27 22:21:17 webserver systemd[1]: Stopped LSB: Apache2 web server.
Это - то, что имеет sudo энергия/etc/monit/monitrc:
check process apache2 with pidfile /run/apache2/apache2.pid
start program = "/etc/init.d/apache2 restart" with timeout 15 seconds
stop program = "/etc/init.d/apache2 stop"
Как я удостоверяюсь, что Apache2 перезапущен правильно так, чтобы состояние sudo/etc/init.d/apache2 показало корректное состояние?
Редактирование 1: Мой/etc/monit/monitrc похож на это:
set daemon 60
set logfile /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state
set mailserver localhost
set eventqueue
basedir /var/lib/monit/events
slots 100
set alert first-email@gmail.com
set alert second-email@domain-name.com
set httpd port 2812 and
use address localhost
allow localhost
allow admin:monit
check process apache2 with pidfile /run/apache2/apache2.pid
start program = "/etc/init.d/apache2 start" with timeout 60 seconds
stop program = "/etc/init.d/apache2 stop"
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
start program = "/etc/init.d/mysql start" with timeout 60 seconds
stop program = "/etc/init.d/mysql stop"
Изменение кода monit к следующему устранило проблему:
check process apache2 with pidfile /run/apache2/apache2.pid
start program = "/bin/systemctl start apache2.service" with timeout 15 seconds
stop program = "/bin/systemctl stop apache2.service"
restart program = "/bin/systemctl restart apache2.service"