次のようにシェルスクリプトは、次のとおりです。
Vimのmonitor.sh
#!/ binに/ bashの
しばらく trueに #無限ループ
旗 = ` PSの -aux | grepを " のhttpd " | grepをする -v " はgrep " | WC - 'L'が
行う
のIF [[$旗-eq 0 ]]数が0に等しい場合は判定処理#、httpdの起動
後、
`httpd`#启动のhttpdを起動しsystemctl
エコー ` DATE ` - 「Apacheの再起動は、」 >> running.log#は、ログファイルに書き込まれた時間を再起動されますが、カスタマイズされた
他は、
エコー 「Apacheが実行されている... 」 >>は/ dev / nullに
Fi回線
SLEEPを#3S遅延を入力して3秒後に次のサイクルが
行われます
bashのmonitor.sh&:スクリプトを実行します。
コマンド&番号の末尾、実行するためにバックグラウンドでこのタスクを意味
それでは、どのようにそれを実行するスクリプトを停止していますか?
(1)まず、プロセスPID番号を見つけるためにスクリプトを実行します
PS -aux | grepの "バッシュmonitor.sh"
(2)スクリプトの処理を終了します。
殺す-9プロセスPID号
いくつかのスクリプト記述を行うには:
PS -aux | grepの番号は、プロセスを見つけます
パラメータ:-auxは、すべてのプロセスが、他のユーザーが含まれていることを意味し
PS -aux | grepの "PROCESS_NAME"
のみ、このコマンドを実行すると、grepのプロセスになります、それだけで上記のコマンドを使用している場合、常に少なくとも1つのプロセス(grepのプロセス)を取得しますので、我々はまた、次のコマンドを使用する必要があり、grepのは、プロセス自体を除外すると言うことです
grep -v "grepを"
そして、最終工程の統計は-lコマンドをWC
あなたが0に等しいかどうかを判断するプロセスの数を取得する場合、サービスが実行されていないことを証明し、その後、コマンドの実行を開始します
sleepコマンドは、時間の現在の期間の動作を遅延させるために使用することができます
1秒の遅延スリープ1
1秒の遅延スリープ1S
1分間の遅延スリープ1メートル
睡眠1hは1時間遅れで表示します
1日遅れた睡眠1D