Lesson 18

実践4:プロセスの死活監視をする

Lesson 18 Chapter 1
実践4:プロセスの死活監視をする

プロセスの死活監視とは、コンピューター上で実行されているプログラムが正常に動作しているかどうかを定期的に監視し、もしプログラムに異常終了した場合には自動的に再起動する仕組みのことです。

この監視は、サービスを提供するWebサイトやアプリケーションなど、長時間稼働する必要があるシステムで行われます。例えば、銀行のATMやオンラインショップのサイトなどです。もしプログラムが異常終了した場合、サービスが停止するため、顧客にとっては非常に不便な状況となります。

プロセスの死活監視は、そのような問題を防ぐために行われます。定期的にプログラムを監視し、もし異常がある場合には自動的に再起動することで、サービスの停止を防ぎます。

また、プロセスの死活監視は、複数のプログラムを同時に実行する場合にも役立ちます。複数のプログラムが同時に実行される場合には、一部のプログラムが処理に時間がかかりすぎて他のプログラムの処理が遅れることがあります。その場合、処理が遅れているプログラムを再起動することで、他のプログラムの処理をスムーズに進めることができます。

つまり、プロセスの死活監視は、サービスを提供するために必要なシステムや、複数のプログラムを同時に実行する場合に、システムの安定性や処理効率を保つために欠かせないものです。

このレッスンでは、PowerShellを使用してプロセスの実行状態を監視し、停止している場合に自動的に再起動するスクリプトを作成します。

以下の例では、「notepad」というメモ帳のプロセスを監視し、停止している場合に自動的に再起動するスクリプトを作成します。

processMonitoring.ps1
# 監視するプロセス名
$processName = "notepad"

# 無限ループ
while ($true) {
    # プロセスが実行中かどうかを確認
    $process = Get-Process -Name $processName -ErrorAction SilentlyContinue

    # プロセスが停止している場合は再起動
    if (!$process) {
        Start-Process -FilePath $processName
    }

    # 監視間隔を設定(10秒)
    Start-Sleep -Seconds 10
}

このスクリプトでは、Get-Processコマンドレットを使用して、指定したプロセス名のプロセスを取得し、実行中かどうかを確認します。プロセスが停止している場合、Start-Processコマンドレットを使用してプロセスを再起動します。そして、Start-Sleepコマンドレットを使用して、次の監視までの待機時間を設定します。

このように、PowerShellを使用してプロセスの死活監視を行うことで、サーバーやアプリケーションが稼働し続けることを保証することができます。