bequt
V2EX  ›  问与答

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

  •  
  •   bequt · Mar 19, 2021 · 4177 views
    This topic created in 1906 days ago, the information mentioned may be changed or developed.

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

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

    21 replies    2021-03-21 01:54:30 +08:00
    ik
        1
    ik  
       Mar 19, 2021 via iPhone
    脚本是卡死还是退出?


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

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

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

    https://www.appgao.com/SystemTools/frpcd.html
    ch2
        21
    ch2  
       Mar 21, 2021 via iPhone
    Windows 用 nssm 就是了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3574 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 97ms · UTC 00:05 · PVG 08:05 · LAX 17:05 · JFK 20:05
    ♥ Do have faith in what you're doing.