サービス・プロセスの起動確認するシェルスクリプト
Contents
サービスやプロセスの起動確認して落ちていれば起動するシェルスクリプト
特定のプロセスやサービスの起動を確認して落ちていれば起動するシェルスクリプトです。
シェルスクリプトの流れは、psコマンドでプロセスを確認して、wcコマンド起動してるプロセス数を確認します。その後でif文でプロセス数が「0」なら落ちているプロセスを起動します
サービスの起動方法が、CentOS 5.x, CentOS6.x と CentOS 7.xと違うのでどちらのOSも紹介します。また起動方法はUbuntu系でも同じですので、Ubuntu系でも使えます
CentOS 5.x, CentOS6.x, Ubuntuでプロセスが落ちていれば起動するシェルスクリプト
CentOS 5系, CentOS 6系, UbuntuでMySQLのプロセスが落ちていれば起動するシェルスクリプトです。スクリプトを再生後は、実行権限を付与しておきます。Cronに登録して一定間隔でチェックすればプロセスが落ちていても起動します
$ vim process_check.sh #!/bin/bash ProcessName=mysql count=`ps -ef | grep $ProcessName | grep -v grep | wc -l` if [ $count = 0 ]; then echo "$ProcessName is dead." sudo /etc/init.d/$ProcessName start else echo "$ProcessName is alive." fi $ sudo chmod +x process_check.sh
CentOS 7でプロセスが落ちていれば起動するシェルスクリプト
CentOS7系でのシェルスクリプトの流れは上記のCentOS6系と同様で起動する場合に「systemctl」コマンドに置き換わっています。確認するプロセスは上記とおなじく「MySQL」のプロセスを確認しています。また、プロセスを起動する直前にメールコマンドを管理者になどにプロセスを起動したことメール送信しています
$ vim process_check.sh #!/bin/bash ProcessName=mysqld MailAdress=test@example.com count=`ps -ef | grep $ProcessName | grep -v grep | wc -l` if [ $count = 0 ]; then echo "$ProcessName is dead." sudo systemctl start $ProcessName MailBody="$ProcessName is dead. $ProcessName start" MailSubject="$ProcessName is dead" echo $MailBody | mail -s $MailSubject $MailAdress else echo "$ProcessName is alive." fi $ sudo chmod +x process_check.sh
ディスカッション
コメント一覧
まだ、コメントがありません