当前位置: 首页 > news >正文

Powershell实现服务守护进程功能(服务意外终止则重启)

简介

Windows的服务是脆弱的,有时候服务关联的进程因为有一些unexpected exception而异常,进而导致服务挂掉,这个时候我们需要setup一个守护批处理来守护这个服务。

解决方案

一、持续守护型

  1. 使用 while 循环持续检测服务状态。
  2. 如果服务状态为 Stopped,则自动启动。
  3. 可用 Start-Service 启动服务。
$serviceName = "YourServiceName"   # 替换为你的服务名while ($true) {$service = Get-Service -Name $serviceName -ErrorAction SilentlyContinueif ($service.Status -eq 'Stopped') {Write-Host "$(Get-Date): $serviceName stopped, restarting..."Start-Service -Name $serviceName}Start-Sleep -Seconds 10  # 每10秒检查一次}

二、间歇守护型

只需要基本的停止则重启服务

    $service = Get-Service -Name $serviceName -ErrorAction SilentlyContinueif ($service.Status -eq 'Stopped') {Write-Host "$(Get-Date): $serviceName stopped, restarting..."Start-Service -Name $serviceName}

如何运行?

后台运行

可用 Start-Job 或 Start-Process 让脚本后台运行。

Start-Job -ScriptBlock { & "C:\path\to\monitor-service.ps1" }

计划任务

在Widnows的Task Scheduler可将脚本设置为开机自启(如放入计划任务),或者间歇1分钟/5分钟运行。

http://www.xdnf.cn/news/662293.html

相关文章:

  • 湖北理元理律师事务所债务优化服务中的“四维平衡“之道
  • Ubuntu的shell脚本
  • Few-shot Personalized Scanpath Prediction
  • Monorepo 管理
  • 寒武纪显卡MLU编译安装mmcv1.7.0、mmdetection2.26.0并测试
  • 悬空指针问题回顾与实践总结(Dangling Pointers Retrospective)
  • 前端大文件分片上传与断点续传方案
  • 边缘AI:在物联网设备上实现智能处理
  • 深浅拷贝?
  • 【数据集】基于ubESTARFM法的100m 地温LST数据集(澳大利亚)
  • 自动化测试工具:Selenium详解
  • Python基础语法(十三):命名空间与作用域
  • 新质生产力引擎:营销枢纽智能体贯通全链路,AI赋能企业数字化运营高效升级!
  • 了解哈希表
  • Haproxy编译安装
  • 【MogDB】测试 ubuntu server 22.04 LTS 安装mogdb 5.0.11
  • ceph osd 无法启动
  • 安装conda
  • 如何查看 GitLab 内置的 PostgreSQL 版本?
  • 记录一个有用的tcpdump命令
  • Veeam Backup Replication Console 13 beta 备份 VMware esxi
  • Redis 中跳表
  • 从“无我”到“无生法忍”:解构执着的终极智慧
  • (vue)vue3+vite+ts项目router路由添加
  • 项目管理进阶:详解项目管理办公室(PMO)实用手册【附全文阅读】
  • Vuex Actions: 异步操作
  • LVGL显示其他大小的中文
  • AE THYRO-AX 功率控制器 THYRISTOR-LEISTUNGSSTELLER THYRISTOR POWER CONTROLLER
  • NumPy 2.x 完全指南【十九】广播机制
  • Windows 拓展Path环境变量