さて、サービスの監視。前に紹介したような気もしますが、出していないようなので。
サーバー監視において、PowerShellで、サービスの状態を監視したい時ってあります。 その場合のコードサンプルを。
方法1. Whileループを使う
正直、無いですね。 まぁ一応紹介します。
$svc = Get-Service -Name Server while($svc.State -ne 'Stopped') { Start-Sleep -Seconds 1 } #続きをここに!
Get-Service
で、サービスを取得し、.Stateプロパティの状態をwhile監視ですね。
実に面白くないです。
方法2. WaitForStatusメソッドを利用する
せっかく専用メソッドあるので使えばいいのです。
MSDN - ServiceController.WaitForStatus メソッド.aspx)
簡単です、書いてみましょう。
$svc = Get-Service -Name Server $svc.WaitForStatus('Stopped') #続きをここに!
このメソッドは、timeoutも第二引数に設定可能です。 timeoutを指定しないと、サービスが指定したステータスになるまで、無期限に待機します。
$svc = Get-Service -Name Server $svc.WaitForStatus('Stopped',10) #10秒待って応答なければタイムアウトを返す。 #続きをここに!
サービス監視は、サーバー監視の基本ですね。