Illumos에서 node.js 서버를 계속 실행하기 위해 svcadm을 사용하고 있습니다. 충돌로 인해 svcadm이 서버를 다시 시작하는 경우 알림을 받을 수 있는 방법이 있습니까? 특히 프로세스가 다시 시작될 때 종료되지 않고 자체적으로 종료되는 경우에는 더욱 그렇습니다.
이메일을 보내거나 경고를 보낼 수 있도록 스크립트를 실행하고 싶습니다.
답변1
Solaris 11에서는 SMF 데몬이 서비스 상태 변경 사항을 알리도록 할 수 있습니다.
하지만 나중에 SMF에 의해 추가되었기 때문에 Illumos에 해당 기능이 있는지 확실하지 않습니다.
SMF가 포함된 모든 버전에서 SMF 매니페스트에서 직접 프로그램을 호출하는 대신 스크립트를 사용하는 경우 언제든지 SMF 서비스의 시작 방법에 이메일/알림을 보내는 명령을 넣을 수 있습니다.
답변2
각 서비스에는 자체 로그가 있습니다. 다음을 수행하여 서비스에 대한 로그가 무엇인지 확인할 수 있습니다. 예를 들어 저는 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
function start를 검색하고 다음을 추가하세요.
echo "Service ssh has been restarted!" |mailx -s "SSHD" user@mailbox
이제 귀하의 환경과 서비스에 맞게 업데이트하세요. 예쁘지는 않지만 효과적입니다.