Как проверить, работает ли мой скрипт sh на JAVA - PullRequest
0 голосов
/ 10 июля 2020

У меня есть класс java, который запускает несколько сценариев оболочки в al oop, например:

for (int i = 0; i < list.size(); i++) {
Runtime.getRuntime().exec(file.getAbsolutePath() + "/script.sh");
}

В том же классе через 3 минуты я хочу проверить, есть ли сценарий sh все еще работает, если да, переходите к выполнению второго скрипта. sh, если нет, то подождите, пока он не будет выполнен.

Любая помощь?

Ответы [ 2 ]

1 голос
/ 10 июля 2020

После записи экземпляра процесса:

 Process p = Runtime.getRuntime().exec(cmd);

вы можете вызвать это, чтобы дождаться его завершения после любого периода времени, который вы sh позже:

 p.waitFor();

или

 p.waitFor(long timeout, TimeUnit unit)
1 голос
/ 10 июля 2020

Вы можете сохранить возвращенный экземпляр Process из метода exec в переменной и вызвать Process#isAlive, чтобы проверить, работает ли он еще.

Пример:

Process p = Runtime.getRuntime().exec("script.sh");
Thread.currentThread().wait(100);
if(p.isAlive()){
     // Do something
}
...