本文主要是介绍监视一个进程,当它停止响应时结束任务然后重启,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近写了个服务器端的socket程序,有时会锁死,由于有些引用的组件看不到源码,不知道哪里出了问题,杀掉进程重启就可以用了。而且不影响客户端的重连。我打算写个程序来做这个事
网上找了一些资料,有些事linux下的用pyhson写的脚本。没有找到合适我用的,最后打算自己写。
主要思想就是:
1。获取锁死的进程pid
2。获得该进程的启动路径,因为可能同一个进程的名字是不同路径下的
3.杀掉该进程
4.重启该进程
经过多次试验,最终定下来tasklist,taskkill,wmic这个组合
tasklist :用来找到锁死的进程
tasklist /FO CSV /FI "status eq NOT RESPONDING"
返回的结果核实有没有感兴趣的进程,把PID取出来
wmic:用来获取该进程的路径
wmic process where name=exename get ExecutablePath
taskkill:用来杀死进程
taskkill /F /PID xxxxx
最后启动就不说了直接shellexecute就行
再做个timer上去,定时执行上面的过程,大功告成。
这篇关于监视一个进程,当它停止响应时结束任务然后重启的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!