我有一个Windows控制台应用程序将运行一段时间。 这已经在内部开发,testing表明,随着时间的推移,内存使用增长,其他不好的事情随之而来。 开发人员无法及时纠正所有问题,因此我正在寻找一种定期结束并重新启动进程的方法。 我已经有一个运行batch file的Windows计划任务,检查进程是否正在运行,如果没有,启动它。
现在我需要一些能够优雅地阻止它的东西。 该应用程序已经将CTRL-BREAK事件作为受控关机的请求。 我想发送CTRL-BREAK,如果在一段时间后还没有结束,那么我可以使用taskkill来强制结束它。 taskkill似乎给它一个CTRL-CLOSE事件。 有没有办法从命令行将CTRL-BREAK提供给进程?
你可以用这个小工具发送一个控制中断。
http://www.latenighthacking.com/projects/2003/sendsignal/
注意如果从batch file运行,请确保使用start 。
我不知道一个rest事件是否被认为是一个优雅的应用程序closures。
也就是说,在sysinternals下searchps工具,从微软免费。 有一个pskill命令可以用来杀死应用程序,我相信一个pslist来获取进程ID。 parsing出来,并发送一个杀手信号,看看是否适合你。