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

Monit и несколько действий: объединение команд в команду перезапуска Monit?

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

 if failed port 80 and protocol http
     then exec /home/sweet/script.pl
     and restart

При объявлении команды перезапуска для службы в monitrc файл конфигурации, можно ли попробовать что-то вроде этого:

restart program = "perl /home/sweet/crazy-stuff.pl && /etc/init.d/server restart"

Так как monit -t не упоминайте ни одной ошибки, которую я предпочитаю спросить, прежде чем делать плохие вещи

Вы должны использовать exec и подоболочку bash, например:

exec "/bin/bash -c '/etc/init.d/server restart && perl /home/sweet/script.pl'"

Однако передовой опыт рекомендует использовать один сценарий для всех ваших действий (то есть включить команду init.d restart в сценарий оболочки).

как насчет этого формата

  blabla... exec "/bin/sh -c 'foo=$(mktemp) && tee $foo <<-EOF
# create the bash script then execute it

/etc/init.d/server restart
perl /home/sweet/script.pl

# and any other commands as you wish

EOF
/bin/bash $foo'"

если вы хотите автоматическое удаление, добавьте /bin/rm $foo после /bin/bash $foo

...
EOF
/bin/bash $foo; /bin/rm $foo'"