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

2021-03-19 18:24:45 +08:00
 bequt

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

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

3432 次点击
所在节点    问与答
21 条回复
ik
2021-03-19 18:35:51 +08:00
脚本是卡死还是退出?


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

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

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

https://www.appgao.com/SystemTools/frpcd.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/763277

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX