【AIによる回答】
Webminの「システム・サーバ・ステータス」モジュールを使用して、Apacheが5回失敗(ダウン)した際に自動で再起動させる設定手順は以下の通りです。前提条件
- Webminがインストールされ、root権限でログインできること。
- Apacheが
systemd(systemctl) で管理されていること。 [1]設定手順
- Webminにログインし、左メニューから 「その他」 > 「システム・サーバ・ステータス」 を選択します。
- 「監視対象の追加」 (Add monitor) をクリックします。
- 「モニタータイプ」 で 「Apache Webserver」 (または「プロセスの監視」) を選択します。
- モニターの設定:
- 説明: Apache監視(任意)
- 監視するApacheのURL:
http://localhost/- ステータスがダウンの時の動作: 「コマンドの実行」 を選択し、テキストボックスに以下のコマンドを入力します。
bashsystemctl restart httpd # (Debian/Ubuntuの場合は systemctl restart apache2)コードは注意してご使用ください。- コマンド実行のタイミング: 「ダウン時」 を選択します。
- 失敗回数の設定: 「ダウンしたときのみ実行」ではなく、5回連続の失敗後に再起動したい場合は、通知設定やスケジュールの設定画面にて、「ダウンが \(N\) 回連続した後に実行」というオプションがあれば設定します。
- 注意: Webminの標準機能では「ダウン時」の再起動が基本です。5回連続の失敗を厳密に検知したい場合は、シェルスクリプトを別途作成し、それをWebminから呼び出す方が確実です。
- 「監視の追加」 をクリックして設定を保存します。
確実な方法:シェルスクリプト+cronbash#!/bin/bash # Apacheのステータスを確認 systemctl is-active --quiet httpd if [ $? -ne 0 ]; then # 失敗した場合は再起動 systemctl restart httpd fiコードは注意してご使用ください。トラブルシューティング
- 再起動しない場合: Apacheが完全に停止していない状態で再起動しようとしている可能性があります。
stopをしてからstartするか、systemctl restartを使用してください。- 設定ファイルエラー: 設定ファイル(
httpd.conf)にミスがある場合、自動再起動しても再び停止します。systemctl status httpdでログを確認してください。 [1, 2, 3]※本設定は自己責任のもと実施してください。設定ミスのループに注意してください。
シェルスクリプトの方を5回失敗したら再起動するように修正してください。再起動したらカウントはリセットしてください。
5回連続で失敗したときのみ再起動し、成功(または再起動完了)したらカウントをリセットするスクリプトは以下の通りです。一時ファイル(/tmp/apache_fail_count)を使用して失敗回数を記録します。bash#!/bin/bash # 設定 SERVICE="httpd" # Ubuntu/Debianの場合は "apache2" に変更 COUNT_FILE="/tmp/apache_fail_count" MAX_RETRIES=5 # 失敗カウントファイルの初期化(存在しない場合) if [ ! -f "$COUNT_FILE" ]; then echo 0 > "$COUNT_FILE" fi # 現在の失敗回数を読み込み CURRENT_COUNT=$(cat "$COUNT_FILE") # Apacheのステータスチェック systemctl is-active --quiet "$SERVICE" if [ $? -eq 0 ]; then # 【成功】稼働中ならカウントをリセット echo 0 > "$COUNT_FILE" else # 【失敗】カウントをインクリメント CURRENT_COUNT=$((CURRENT_COUNT + 1)) echo "$CURRENT_COUNT" > "$COUNT_FILE" # 5回連続失敗したか確認 if [ "$CURRENT_COUNT" -ge "$MAX_RETRIES" ]; then # 再起動実行 systemctl restart "$SERVICE" # 再起動したのでカウントをリセット echo 0 > "$COUNT_FILE" # ログ出力(必要であれば) logger "Apache has failed $MAX_RETRIES times. Restarted automatically." echo "Apacheの再起動が完了しました。" | mail -s "Apache Restart Notice" [受信者メールアドレス] fi fiコードは注意してご使用ください。設定のポイント
- カウントの保存: スクリプトが終了しても回数を覚えておく必要があるため、
/tmp内のファイルに数字を書き込んでいます。- リセット条件:
- Apacheが正常に動いていることが確認できれば
0に戻ります。- 5回目に達して再起動コマンドを送った直後も
0に戻ります。- 実行方法:
crontab -eで、1分ごと(または任意の頻度)に実行するように設定してください。cron* * * * * /path/to/your/script.shコードは注意してご使用ください。このスクリプトを保存した後、chmod +x script.shで実行権限を与えるのを忘れないようにしてください。
