Monit を介して Java プログラムを起動する方法について、助けを求めて書いています。起動スクリプト program.sh を作成しました。monit コードと scipt コードは、この投稿で提供されます。
問題は、monit を介して実行されるスクリプト ファイルを使用してプログラムを開始および停止できないことです。ターミナルを使用してプロセスを開始するとプロセスを監視できますが、monitで開始/停止できません。monit のログに「開始に失敗しました」と表示される
ただし、monit から ssh のようなプログラムを簡単に開始および停止できます。monit は sudo で実行され、管理者権限を持つアカウントからスクリプトを実行しています。誰かがこれを理解するのを手伝ってくれるととても助かります ありがとう
monitrc ファイル
#++++++++++#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#Monit settings
set daemon 10 with start delay 2 # check services at 2-minute intervals
set logfile syslog facility log_daemon
set logfile /var/log/monit.log
set idfile /var/lib/monit/id
set statefile /var/lib/monit/state
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Mail Server
set mailserver smtp.gmail.com port 587
username "monit.abc123@gmail.com" password "password"
using tlsv1 with timeout 30 seconds
set eventqueue
basedir /var/lib/monit/events # set the base directory where events will be stored
slots 100 # optionally limit the queue size
set alert abc123@gmail.com # receive all alerts
set alert abc123@gmail.com only on { timeout } # receive just service-
# # timeout alert
#set alert foo@bar { nonexist, timeout, resource, icmp, connection }
#set alert security@bar on { checksum, permission, uid, gid }
# setup the email for the SMS thing over here.......................
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
set httpd port 2813 and
# use address localhost # only accept connection from localhost
allow localhost # allow localhost to connect to the server and
allow 0.0.0.0/0.0.0.0
allow admin:monit # require user 'admin' with password 'monit'
# allow @monit # allow users of group 'monit' to connect (rw)
# allow @users readonly # allow users of group 'users' to connect readonly
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
set mail-format {
from: monit@$HOST
subject: Monit Alert -- $EVENT $SERVICE
message: $EVENT Service $SERVICE
Date: $DATE
Action: $ACTION
Host: $HOST
Description: $DESCRIPTION
Your faithful employee,
Monit
}
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#***********************************************************************************************
#Computer Resources check
check system myhost.mydomain.tld
if loadavg (1min) > 4 for 5 cycles then alert
if loadavg (5min) > 2 for 5 cycles then alert
if memory usage > 75% for 3 cycles then alert
if swap usage > 25% for 5 cycles then alert
if cpu usage (user) > 70% for 5 cycles then alert
if cpu usage (system) > 70% for 5 cycles then alert
if cpu usage (wait) > 20% for 5 cycles then alert
#***********************************************************************************************
################################################################################################
#Monitoring SSH Service
check process ssh123 with pidfile /var/run/sshd.pid
start program = "/etc/init.d/ssh start"
stop program = "/etc/init.d/ssh stop"
if cpu > 50% for 5 cycles then alert
if totalmem > 200 MB for 5 cycles then alert
if children > 2 then alert
#if loadavg(5min) greater than 10 for 8 cycles then stop
#if 5 restarts within 5 cycles then timeout
################################################################################################
#Monitoring Prorgam in Java
check process javaprg with pidfile /home/user/Desktop/Binaries/javaprg.pid
start program = "/home/user/Desktop/Binaries/javaprg.sh start"
stop program = "/home/user/Desktop/Binaries/javaprg.sh stop"
if cpu > 50% for 5 cycles then alert
if totalmem > 1500 MB for 5 cycles then alert
if children > 2 then alert
#if loadavg(5min) greater than 10 for 8 cycles then stop
#if 5 restarts within 5 cycles then timeout
スクリプトの開始/停止
#!/bin/bash
case $1 in
start)
echo $$ > javaprg.pid;
exec /usr/bin/java -jar javaprg.jar
;;
stop)
kill $(cat javaprg.pid);
rm javaprg.pid
;;
*)
echo "usage: javaprg {start|stop}" ;;
esac
exit 0