如何在Windows上停止使用任务计划程序启动特定的Java进程?

时间:2016-01-02 02:15:09

标签: java batch-file scheduled-tasks batch-processing

我有一个批处理文件,它运行一个Java进程。此批处理文件计划使用Windows任务计划程序在特定时间运行。计划任务时选择了以下选项“即使用户是否已记录就运行”。

我想在特定时间停止java进程。系统上有多个Java进程。因此我无法将taskkill/t /im (imagename)一起使用。我尝试使用taskill /t /fi (window title)停止。但是,此选项仅在为Java进程选择“仅在用户登录时运行”时才有效。就我而言,即使用户没有登录,也需要运行Java进程。

有人可以指导我如何停止Java进程吗?

1 个答案:

答案 0 :(得分:0)

  1. 如果您可以修改该流程的来源:

    添加一些线程,通过一些频率检查是否存在特定文件(如.needsuicide)并暂停进程(如果存在),然后在您想要停止该过程时创建该文件(don&#39 ; t忘记在进程自杀之后删除该文件。)

  2. 如果您无法访问流程来源:

    grep匹配命令行参数的正在运行的java进程列表,例如-jar "<name_of_desired_jar>"(或任何虚拟参数,如omg_please_kill_me),您可以在进程计划任务中指定),然后通过他的pid

  3. 杀死该过程
  4. 组合方式,即您可以访问该流程的来源,但想要kill,而不是要求它自行终止

    在进程启动时,让他创建一个具有特定名称的空文件(如.kill_me_<pid-of-jvm-process>,然后根据需要 - 查找该文件并按指定的pid终止进程。