나는 간단한 시작됩니다 죽으면 과정을 다시 실행 노드 서버. 죽이면 다시 시작될 것이고 올바르게 설정 되었다면 이메일을 받게 될 것입니다.
위치 /home/xxx/monitoring/nodejs
파일 : 노드 server.js
var http = require('http');
var port = 8002;
var fs = require('fs');
var logStream = fs.createWriteStream(port+"_log.txt", {'flags':'a'});
var count = 0;
http.createServer(function(req, res){
var output = (++count) + ' Request received in '+port+' @ ' + new Date()+'\n';
console.log(output);
logStream.write(output);
res.writeHead(200, {'Content-Type' : 'text/plain'});
res.end('From '+port+' @ ' + new Date());
}).listen(port);
console.log('Server running @ ' + port)
FILE : server.sh
#!/bin/bash
process=$1
PID_FILE="/home/xxx/monitoring/nodejs/file.pid"
case $process in
start)
echo "STARTING node js server in port 8002"
nohup /usr/sbin/node /home/xxx/monitoring/nodejs/node-server.js > /home/xxx/monitoring/nodejs/server.log 2>&1 &
echo $! > $PID_FILE
;;
stop)
kill -9 $(cat $PID_FILE)
rm $PID_FILE
;;
*)
echo "INVALID OPTION"
;;
esac
LOCATION :
(우분투)은/etc/MONIT/monitrc
set mail-format {
from: [email protected]
subject: monit alert -- XXX-PROD $EVENT $SERVICE
message: $EVENT Service $SERVICE
Date: $DATE
Action: $ACTION
Host: $HOST
Description: $DESCRIPTION
Your faithful employee,
}
set mailserver smtp.gmail.com port 587 username "[email protected]" password "xxx" using tlsv1
set alert [email protected]
check process nodejs-server with pidfile /home/xxx/monitoring/nodejs/file.pid
start program = "/home/xxx/monitoring/nodejs/server.sh start"
stop program = "/home/xxx/monitoring/nodejs/server.sh stop
"
서버가 실행되면 브라우저 http://localhost:8002/을 누르십시오. 결과가 표시됩니다. 이제 프로세스 ID를 'monit status'또는 다른 방법으로 찾아서 프로세스를 종료하십시오. 프로세스가 존재하지 않는다는 메일을 받게되지만 잠시 후 서버가 실행되고 '프로세스가 다시 시작되었습니다'라는 메시지가 나타납니다.
하지만 다음 다시 시작되지 않습니다
monit stop nodejs-server
같은 MONIT 명령으로 프로세스를 중지하는 경우, 기억하시기 바랍니다. 그리고 당신은 ur 프로세스가 중지되었다는 메일을받습니다.
그것은 말합니다 : 'program1'프로세스가 실행되고 있지 않습니다. 다시 시작하려고합니다. 시작 :/bin/bash. – Zero
시작하지 못했습니다. 설명서를 읽으십시오. 잘못된 것을 알지 못합니다. 진짜 "program1"이라는 이름으로 처리하는거야? –
그리고 당신은 그와 함께 일하기 전에 프로세스를 시작해야합니다. –