题 Windows任务计划程序 - 当进程(EXE)未运行时运行操作


我有一个exe,它在Windows Server 2008 SP2启动时启动。它一直运行并执行一项重要任务(获取邮件以进行交换)。 在Windows任务计划程序的帮助下,我想检查此进程是否仍在运行。 我选择什么触发器?或者批处理程序可能有一些解决方法吗?


6
2018-01-03 12:20






答案:


一个选项可能是让它在一个时间间隔内运行,也许每15分钟运行一次,然后在“设置”选项卡上,为“不启动新实例”配置“如果任务已在运行”。这样,如果它停止运行,你可以确保它不会超过15分钟。


4
2018-01-03 12:51



是的,这是一个很好的解决方案。一个问题是,exe是通过批处理脚本启动来设置一些日志文件,批处理文件本身没有正在运行的进程。在我试图杀死进程并在同一个批处理脚本中再次启动它之前,确保进程没有运行两次,但这并没有100%的时间都能解决。 - Hans
让脚本在循环中运行不是一个选项吗?似乎这样做可以避免挂钩进入某种事件或对其进行外部过程检查。 - Greg Askew


这必须通过脚本或编程来完成。例如,编写一个Powershell脚本,每隔几分钟检查一次正在运行的进程列表,如果进程x不在列表中,则执行一些操作。

http://technet.microsoft.com/en-us/library/ee176855.aspx


0
2018-01-03 13:52



如果您愿意使用C(或任何其他可以访问Windows API的语言)进行编码,则无需轮询。一旦找到了相关流程,请等待流程处理;当进程退出时,等待将完成。 - Harry Johnston