监测Seafile进程未响应关闭弹窗及重启
将以下代码修改为ps1格式的powershell脚本运行
param (
[string]$processName = "seafile-applet",
[string]$processPath = "E:\seafile7\bin\seafile-applet.exe"
)
# 打印标题
Write-Host "==============================="
Write-Host " Seafile 进程监控脚本"
Write-Host "==============================="
Write-Host "监控进程名称: $processName"
Write-Host "进程路径: $processPath"
Write-Host "==============================="
# 初始化崩溃计数
$crashCount = 0
while ($true) {
# 获取进程
$process = Get-Process -Name $processName -ErrorAction SilentlyContinue
if ($null -eq $process) {
# 如果进程不在运行,则启动它
Write-Output "$processName 进程未运行,正在重新启动..."
Start-Process $processPath
$crashCount++
} else {
# 检查进程是否未响应
foreach ($p in $process) {
if ($p.Responding -eq $false) {
Write-Output "$($p.Name) 进程未响应,正在重新启动..."
# 关闭进程
Stop-Process -Id $p.Id -Force
# 关闭可能弹出的消息框
$errorDialog = Get-Process -Name "WerFault" -ErrorAction SilentlyContinue
if ($errorDialog) {
foreach ($dialog in $errorDialog) {
Stop-Process -Id $dialog.Id -Force
}
}
# 启动进程
Start-Process $processPath
$crashCount++
break
}
}
}
# 输出崩溃次数
Write-Output "崩溃次数: $crashCount"
# 等待10秒后再次检查
Start-Sleep -Seconds 10
}

浙公网安备 33010602011771号