0
我有一個腳本啓動了一個工作Start-Job
,它監視一個進程。無論何時該進程死亡,腳本都會自動重新啓動進程,然後重新啓動腳本。如何知道當退出進入工作時腳本應該退出?
如果腳本無法重新啓動進程,它將發送一封電子郵件並應完全退出PowerShell,以避免重新啓動腳本。我只是在工作中退出,但這似乎並不奏效。
如何讓我的腳本無法重新啓動,如果進程無法重新啓動?
這裏是我的代碼:
$sb = {
while ((Get-Process LogikWebserver).Responding) { sleep -m 50 }
if (!(Get-Process LogikWebserver).Responding) {
#restart process
try {
Start-Process "$processpath\LogikWebserver.exe" -EA Stop
sleep -s 2
if (Get-Process LogikWebserver -EA Stop) {
Send-MailMessage
}
} catch {
Send-MailMessage
<# With this exit I want to tell the script to exit completely #>
exit
}
}
}
# start and get job
Start-Job -Name LogikWebserverWatch -ScriptBlock $sb
Wait-Job -Name LogikWebserverWatch
Get-Job -Name LogikWebserverWatch | Remove-Job -Force
# restart script
$skript = "{0}\{1}" -f $PSScriptRoot, "Watch-LogikWebserver.ps1"
& $skript
謝謝!因此,如果任何事情會在作業中拋出錯誤,「Receive-Job」也會引發錯誤?使用'-ErrorAction停止'可以使用 – Balthazar
。 –