美文网首页
window编译

window编译

作者: 思记享 | 来源:发表于2021-04-14 10:57 被阅读0次

    https://www.cnblogs.com/qianjinyan/p/10772540.html

    taskkill是Windows命令行里终止指定程序“进程”的命令。
    
    /f 表示强制终止
    /im 表示指定的进程名称,例如“explor.exe"
    
    /pid 表示指定的进程ID进程号
    
    taskkill /f /im javaw.exe
    taskkill /f /pid 3352
    

    参考jenkins的部分代码,发现其使用了如下的工具包,经验证该工具获取的pid和windows任务管理器看到的也不一样,但是通过其关闭方法却可以关闭进程,还没弄清楚这个pid和任务管理器里面看到的pid有什么不同。

    <dependency>
                <groupId>org.jvnet.winp</groupId>
                <artifactId>winp</artifactId>
                <version>1.28</version>
            </dependency>
    
    
    if (File.pathSeparatorChar == ';' || OSUtil.osEnum == OSEnum.Windows ) {
                    WindowsProcessUtil.killRecursively(process, runJobId);
                }
    
    public static void killRecursively(Process process,Long runJobId) {
            String logKey = "killAllChildProcess,runJobId=" + runJobId + ",";
            WinProcess winProcess = new WinProcess(process);
            int rootPid = winProcess.getPid();
            LogUtil.info(logKey + "rootPid=" + rootPid);
            if (rootPid < 1) {
                LogUtil.error(logKey + "rootPid=" + rootPid + ",should not less than 1 ");
                return;
            }
            winProcess.killRecursively();
        }
    

    相关文章

      网友评论

          本文标题:window编译

          本文链接:https://www.haomeiwen.com/subject/zwgikltx.html