问题描述
现在我有个用java写的任务调度的控制台程序但有个问题,每天早上来的时候发现那个控制台窗口都关闭掉了,但有时候程序还在运行,于是乎我就很担心有一天程序自己关闭:想求一个检查该程序是否关闭的方法。现在服务器是win2003,怎么使用win的任务计划监测该程序是否运行,如果已停止就重新启动.
解决方案
解决方案二:
使用tasklist命令查询当前运行的程序,如C:DocumentsandSettingsAdministrator>tasklist/FI"IMAGENAMEeq360sd.exe"图像名PID会话名会话#内存使用===================================================================360sd.exe2136Console01,992K
解决方案三:
可以使用楼上的这种方法..定时的去检测一下任务管理器中有没有进程在跑引用1楼slabcde的回复:
使用tasklist命令查询当前运行的程序,如C:DocumentsandSettingsAdministrator>tasklist/FI"IMAGENAMEeq360sd.exe"图像名PID会话名会话#内存使用============================……
解决方案四:
于是乎我就很担心有一天程序自己关闭:想求一个检查该程序是否关闭的方法。程序自己会关闭?这个得重新设计啊,是不是死循环?
解决方案五:
不是死循环,线程定时扫描是否有要待执行的任务
解决方案六:
引用2楼dyllove98的回复:
可以使用楼上的这种方法..定时的去检测一下任务管理器中有没有进程在跑引用1楼slabcde的回复:使用tasklist命令查询当前运行的程序,如C:DocumentsandSettingsAdministrator>tasklist/FI"IMAGENAMEeq360sd.exe"图像名P……
java程序在进程中就是javaw.exe如果定时扫描它,由于部署的有其他应用该程序这个是不可行的。还有没有其他的方法...等》。。。。。。
解决方案七:
谢谢上面三位兄弟的帮忙,自己顶一个....
解决方案八:
问题看来还是没有搞清楚,总共有几个进程?几个线程?是进程间通信问题还是线程间?任务是什么概念?是需要外部启动,还是内部一个方法调用?
解决方案九:
引用5楼vhero的回复:
引用2楼dyllove98的回复:可以使用楼上的这种方法..定时的去检测一下任务管理器中有没有进程在跑引用1楼slabcde的回复:使用tasklist命令查询当前运行的程序,如C:DocumentsandSettingsAdministrator>tasklist/FI"IMAGENAMEeq360sd.exe"图像名……
用tasklist/V取得详细信息过滤一下,如果没有你要监控的那个程序,就启动一个
解决方案十:
#!/bin/bashjava-cp.com.test.Main&echo$!>pid.txt
然后这样检查:psx|awk'{print$1}'|grep^$(catpid.txt)$
解决方案十一:
哦,不好意思,看错了,我还以为是在Linux下
解决方案十二:
引用7楼pauliuyou的回复:
问题看来还是没有搞清楚,总共有几个进程?几个线程?是进程间通信问题还是线程间?任务是什么概念?是需要外部启动,还是内部一个方法调用?
+
解决方案十三:
引用9楼bao110908的回复:
#!/bin/bashjava-cp.com.test.Main&echo$!>pid.txt然后这样检查:psx|awk'{print$1}'|grep^$(catpid.txt)$
psx|awk'{print$1}'|grep^$(catpid.txt)$这句话是什么意思?看能否给点思路,现在我是把java项目注册成服务,然后写批处理就Ok。谢谢大家的帮忙哈...