【问题标题】:How do I get the process id of shell script process build from Java ProcessBuilder如何从 Java ProcessBuilder 获取 shell 脚本进程构建的进程 ID
【发布时间】:2018-10-14 16:28:03
【问题描述】:

如何获取使用 ProcessBuilder 启动的 shell 脚本的进程 ID?

String cmd[] = { "sh", "-c", "ls -l" };
        ProcessBuilder pb = new ProcessBuilder(cmd);
        pb.redirectOutput(new File(request.getParameter("output_file_name")));
        Process p = pb.start();
        try {
            p.waitFor();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        p.destroy();

【问题讨论】:

    标签: java bash shell jakarta-ee scripting


    【解决方案1】:

    见:How can a Java program get its own process ID?

    Java 9 现在支持这一点。否则,从您的应用程序中调用一个脚本来保存您将在某处读取的 PID

    【讨论】:

    • 是否只适用于Java9,我需要用Java6来制作。这可能吗?
    • 您能否详细说明如何从应用程序中调用脚本来保存 PID
    • 首先你需要知道你运行的是什么操作系统。网络上充满了每个操作系统的示例。但是您从 ProcessBuilder 运行的脚本应该包括查找 PID 并将其写入文件的部分。在 Windows 中,如果您要调用 exe,则必须调用一个 .bat 文件,该文件将调用该 exe,然后找到该进程的 PID。
    • 是的,我正在使用带有 bash 脚本的 Linux 操作系统。
    猜你喜欢
    • 2015-10-12
    • 2015-11-12
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2013-06-02
    相关资源
    最近更新 更多