Процесс не останавливается в Java - PullRequest
0 голосов
/ 12 октября 2018

У меня следующая проблема ... Я создал Process через ProcessBuilder таким образом:

private ProcessBuilder processBuilder;
private Process process;

    public void init() {
        processBuilder = new ProcessBuilder(
                "java", "-jar",
                "bam.jar",
                host,
        );
        processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
        processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT);
        try {
            process = processBuilder.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

и у меня есть функция, которая должна завершить процесс:

public void stop() {
    process.destroy();
    try {
        process.waitFor(5, TimeUnit.SECONDS);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    if (process.isAlive()) {
        try {
            Thread.sleep(5000L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        process.destroyForcibly();
    }
}

Но убийство process иногда работает, но иногда не работает.Есть идеи?

...