LINUX.ORG.RU
ФорумAdmin

помогите с настройкой monit, проблема с .pid

 monit pid ubuntu


0

1

Добрый день Поставил monit, написал скрипты запуска (отдельно от монита работают правильно), запустил монит(запустился под root пользователем), он запустил приложение. Остановил приложение скриптом из-под рута(без него говорило что прав нет), у скрипта owner root; скрипт очистил .pid, монит запустил приложение. Убил приложение kill -6(-9, без разницы), .pid содержит предыдущий pid, монит пытается запустить скрипт и фейлит, пытается вызывать stop/start, но все-равно фейлится. После очистки руками .pid он его таки запускает. При остановленом моните после kill приложения после stop/start скриптом приложение запускается.

Подозреваю что не хватает каких-то прав, но не пойму каких. Когда ставил смотрел сюда: https://github.com/blackyboy/Ubuntu-Linux-Stuffs/wiki/Installing-Monit-in-Ubu...

Ответ на: комментарий от backbone

Каюсь что бОльшую часть стырил с просторов, но тут ничего особого нет.. вроде..

#!/bin/bash app_DIR=/home/projects/app_backend app_BINARY=«app_backend» app_PID=/var/run/app.pid

case «$1» in start) oldpid=`cat $app_PID` if [ «$oldpid» != «» ]; then echo «app already started» ps ax | grep $app_BINARY exit 1; fi CONNECTION_COUNT=`netstat -tna | grep 60000 | wc -l` if [ «$CONNECTION_COUNT» != «0» ]; then echo «There are unclosed connections \n» exit 2 fi echo «starting up...» if [ -f $app_DIR/backend_log.txt ]; then mv $app_DIR/backend_log.txt $app_DIR/BackupLogs/backend_log`date +%Y%m%d_%H%M`.txt fi

cd $app_DIR; ./$app_BINARY & pid=`ps awx | grep $app_BINARY| grep -v grep | awk '{print $1}'` echo $pid > $app_PID ;; forcestart) echo «starting up...» CONNECTION_COUNT=`netstat -tna | grep 60000 | wc -l` if [ «$CONNECTION_COUNT» != «0» ]; then echo «There are unclosed connections \n» exit 2 fi

if [ -f $app_DIR/backend_log.txt ]; then mv $app_DIR/backend_log.txt $app_DIR/BackupLogs/backend_log`date +%Y%m%d_%H%M`.txt fi

cd $app_DIR; ./$app_BINARY & pid=`ps awx | grep $app_BINARY| grep -v grep | awk '{print $1}'` echo $pid > $app_PID ;; stop) echo «shutting down...» kill -15 `cat $app_PID` echo «» > $app_PID ps ax | grep $app_BINARY ;; status) ps ax | grep $app_BINARY ;; *) echo «usage: {start|stop|status}» esac

извините за кривые переносы :(

A_9h05t
() автор топика
Ответ на: комментарий от backbone

check process app_backend with pidfile /var/run/app.pid

start program = «/etc/init.d/app start»

stop program = «/etc/init.d/app stop»

if failed host <ip> port 60000 then restart

if 1000 restarts within 1000 cycles then timeout

Разницы быть не должно - если сервер не стартовал то монит должен вызвать stop\start (ведь должен?). При выполнении /etc/init.d/app stop руками монит его стартует сам.

A_9h05t
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.