V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
bequt
V2EX  ›  问与答

windows 上有守护进程这个概念吗?

  •  
  •   bequt · 2021-03-19 18:24:45 +08:00 · 3482 次点击
    这是一个创建于 1370 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近写了一些 python 脚本,主要是用来监控 windows 服务器运行情况,但脚本会因不明原因死掉了,结束了进程。

    不知道在 windows 上有没有一种软件或者方法能够让脚本掉了能重新打开执行。

    21 条回复    2021-03-21 01:54:30 +08:00
    ik
        1
    ik  
       2021-03-19 18:35:51 +08:00 via iPhone
    脚本是卡死还是退出?


    退出的话可以用计划任务 频率自定, 有个选项禁止启动多个实例
    bequt
        2
    bequt  
    OP
       2021-03-19 18:36:52 +08:00
    @ik 基本上都是退出。
    SenLief
        3
    SenLief  
       2021-03-19 18:39:04 +08:00
    supervisor
    pm2
    systemcall
        4
    systemcall  
       2021-03-19 18:39:57 +08:00
    用服务就可以了
    自己去看 Windows Docs,里面搜一下“服务”
    不过要用 dotnet 自己写
    ik
        5
    ik  
       2021-03-19 18:40:03 +08:00 via iPhone
    @bequt 那可以试试计划任务。 会写 bat 脚本的话,写个循环,挂了就启动没准也行🐶
    superrichman
        6
    superrichman  
       2021-03-19 18:53:16 +08:00 via iPhone
    pm2
    Kiriya
        7
    Kiriya  
       2021-03-19 18:56:57 +08:00
    用计划任务
    chinvo
        8
    chinvo  
       2021-03-19 18:57:48 +08:00 via iPhone   ❤️ 1
    服务啊,有 failure recovery

    如果是需要重复运行的,用计划任务
    felixcode
        9
    felixcode  
       2021-03-19 19:01:31 +08:00 via Android
    有软件能把普通的程序或脚本注册成服务,通过系统里的服务界面进行管理。

    或者命令提示符方式也能注册服务。
    wolong
        10
    wolong  
       2021-03-19 22:08:16 +08:00
    再写一个 python 脚本来监控这个脚本?
    ysc3839
        11
    ysc3839  
       2021-03-19 22:34:43 +08:00
    如果你说的“守护进程”指的是 systemd service 这种的话,那 Windows 有自带服务管理器,可以在服务异常停止后自动重新启动。不过这个服务没有 systemd service 好用,因为要应用程序自己去对接服务接口,不过也有工具把普通的程序包装成服务。
    crab
        12
    crab  
       2021-03-19 22:39:55 +08:00   ❤️ 1
    在写一个脚本监视这个脚本进程是否存在。
    franklee628
        13
    franklee628  
       2021-03-19 22:43:31 +08:00   ❤️ 2
    AlibabaPaladin.exe AlibabaProtect.exe
    jim9606
        14
    jim9606  
       2021-03-19 23:41:42 +08:00
    我一般用计划任务来做这个事,触发器设置一个比较高的频率(例如每分钟),高级设置里设置任务已经运行时“请勿启动新实例”。
    ijrou
        15
    ijrou  
       2021-03-19 23:45:26 +08:00
    作何服务互相监控互相启动。。。
    kerro1990
        16
    kerro1990  
       2021-03-19 23:53:23 +08:00 via iPhone
    安装为系统服务
    blueboyggh
        17
    blueboyggh  
       2021-03-19 23:55:10 +08:00   ❤️ 1
    用 NSSM 把脚本安装成服务,加自恢复
    autoxbc
        18
    autoxbc  
       2021-03-20 03:30:10 +08:00   ❤️ 1
    可以加几行代码让程序自我守护,这样不依赖外部工具还能跨平台
    imycc
        19
    imycc  
       2021-03-20 03:59:02 +08:00   ❤️ 1
    搜一下 winsw 或者 nssm,可以把你的进程包装成个后台服务
    计划任务也有重启的选项,但计划任务更侧重于一次性、定时这样的任务。
    internelp
        20
    internelp  
       2021-03-20 08:49:41 +08:00
    楼主看看这个,我当时的需求跟你差不多。

    https://www.appgao.com/SystemTools/frpcd.html
    ch2
        21
    ch2  
       2021-03-21 01:54:30 +08:00 via iPhone
    Windows 用 nssm 就是了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1389 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:51 · PVG 07:51 · LAX 15:51 · JFK 18:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.