Как получить уведомление, когда svcadm перезапустит службу, которая умерла

Я использую svcadm, чтобы мой сервер node.js работал на Illumos, есть ли способ получить уведомление, если svcadm перезапустит сервер, потому что он разбился? В частности, если процесс пошел сам по себе, а не когда я его перезапустил.

Я бы хотел, чтобы сценарий работал, поэтому я могу отправить электронное письмо или поднять предупреждение.

В Solaris 11 вы можете сообщить, что демоны SMF сообщают вам об изменениях состояния службы:

  • Уведомления о переходах состояний экземпляра SMF
  • Как настроить уведомление о событиях перехода SMF

но я не уверен, имеет ли подсветка эту функцию или нет, поскольку это было позднее дополнение к SMF.

В любом выпуске с SMF вы всегда можете просто отправить команду по электронной почте / оповестить вас в методах запуска вашей службы SMF, если вы используете для них скрипт, а не просто вызываете программу непосредственно из манифеста SMF.

У каждого сервиса есть собственный журнал. вы можете проверить, что такое журнал для вашей службы, и в качестве примера я использую ssh:

#svcs -xv ssh svc:/network/ssh:default (SSH server) State: online since Tue Nov 27 11:38:34 2012 See: man -M /usr/share/man -s 1M sshd See: /var/svc/log/network-ssh:default.log Impact: None. 

Теперь вы можете иметь собственный скрипт, скажем, в crontab, чтобы проверить изменения в файле журнала. второй вариант, и я думаю, что это будет на самом деле лучше, вы можете изменить свой стартовый скрипт, чтобы всякий раз, когда он начинается, он автоматически отправит вам электронное письмо.

Чтобы узнать, где находится сценарий запуска:

 svccfg -s svc:/network/ssh listprop ... start/exec astring "/lib/svc/method/sshd start ... 

Теперь просто отредактируйте скрипт и перед выпуском старта вы можете поместить автоматическое уведомление по электронной почте

 vi /lib/svc/method/sshd 

найдите функцию start и добавьте что-то вроде этого:

 echo "Service ssh has been restarted!" |mailx -s "SSHD" user@mailbox 

Теперь просто обновляйтесь, чтобы соответствовать вашей среде и сервису. Не очень, но это работает.