Следите за laravel websocket с помощью monit centos
Я пытаюсь контролировать laravel-websocket с помощью monit вместо supervisord, потому что он предоставляет больше возможностей. Итак, в моем /home/rabter/laravelwebsocket.sh:
#!/bin/bash
case $1 in
start)
echo $$ > /var/run/laravelwebsocket.pid;
exec 2>&1 php /home/rabter/core/artisan websockets:serve 1>/tmp/laravelwebsocket.out
;;
stop)
kill `cat /var/run/laravelwebsocket.pid` ;;
*)
echo "usage: laravelwebsocket.sh {start|stop}" ;;
esac
exit 0
И в etc / monit.d я создал файл cwp.laravelwebsocket с кодом
check process laravelwebsocket with pidfile /var/run/laravelwebsocket.pid
start program "/bin/bash -c /home/rabter/laravelwebsocket.sh start"
stop program "/bin/bash -c /home/rabter/laravelwebsocket.sh stop"
if failed port 6001 then restart
if 4 restarts within 8 cycles then timeout
к сожалению, когда я запускаю monit, все начинает получать monitord, но laravel websocket, и он не запускается один раз, и в таблице мониторинга спереди я вижу
Process - laravelwebsocket Execution failed | Does not exist
Как я могу настроить мониторинг и запускать laravel-websocket при запуске, а также при сбоях, ошибках или сбоях?
Я просмотрел Monitor a Laravel Queue Worker с Monit, но не повезло!
1 ответ
Ваш сценарий bash вставляет свой собственный pid в ваш файл pid. Кроме того, при использовании monit процесс php должен быть отправлен в фоновый режим, поскольку monit- это инструмент мониторинга, а не супервизор.
#!/usr/bin/env bash
case $1 in
start)
php /home/rabter/core/artisan websockets:serve & 2>&1 >/tmp/laravelwebsocket.out
echo $! > /var/run/laravelwebsocket.pid;
;;
stop)
kill $(cat /var/run/laravelwebsocket.pid) ;;
*)
echo "usage: $(basename $0) {start|stop}" ;;
esac
exit 0
Затем сделайте этот файл исполняемым с помощью chmod +x FILEPATH
.
Теперь это должно работать:
check process laravelwebsocket with pidfile /var/run/laravelwebsocket.pid
start program "/home/rabter/laravelwebsocket.sh start"
stop program "/home/rabter/laravelwebsocket.sh stop"
if failed port 6001 then restart
if 4 restarts within 8 cycles then timeout
Вы используете monit в качестве системы инициализации для контейнера? Если это так, пожалуйста, дайте мне знать. Затем применимы еще несколько деталей.