-->
当前位置:首页 > DayDayUp > 正文内容

Windows中java程序的进程守护

Luz1年前 (2023-11-29)DayDayUp1475

原理

利用powershell筛选进程,如果进程不存在,调用启动脚本启动程序。

利用任务计划程序重复周期动作。


powershell代码

$javaProcess = Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -like "*java*" -and $_.CommandLine -like "*Ting3.jar*" }
if (-not $javaProcess) {
    echo "ting3 dead..."
    cd "D:\st\ting3\ting3"
    Start-Process "D:\st\ting3\ting3\startThing3.bat"
}
else{
    echo "ting3 running..."
}

检测使用java 命令运行Ting3.jar的进程,如果不存在,则调用startTing3.bat


可能会被windows defender等软件删除。

需要确保 PowerShell 的执行策略允许运行脚本。如果遇到执行策略的问题,可以在管理员权限的 PowerShell 中执行以下命令来修改执行策略:

Set-ExecutionPolicy RemoteSigned


任务计划中的配置

image.png

image.png

image.png注意常规里不要勾选"不管用户是否登录都要运行"和"使用最高权限运行",不然可能一运行ps1脚本就被删掉了,推测是Windows Defender删的,登录以后windows Defender已经被其他杀毒软件接管了,其他杀毒软件恢复区里没找到被删除的脚本。


另外,下次启动时间也是空的,刷新也没用,但是到时间确实也是会启动的,不知道是我这台电脑bug还是什么原因。


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。