У меня есть программа Java, которая запускает другой процесс с ProcessBuilder
, как следующее:Как запустить proccess полностью отдельный в Java
String commands[] = {"ruby", "/home/scripts/script.rb"};
ProcessBuilder builder = new ProcessBuilder(commands);
Map<String,String> map = builder.environment();
map.put("TYPE", "sometype");
try {
builder.start();
} catch (IOException e) {
e.printStackTrace();
}
Через некоторое время после того, как процесс начинает выполняться (небольшой Ruby, сценарий, который не должен прекращать) программа Java завершает работу.
Проблема заключается в том, что после завершения выполнения Java-программы все подпроцессы закрыты, а также Ruby Script.
Я нашел несколько похожих вопросов, но ответ был всегда, процесс независим. Но это не похоже на то, что в моем случае код Ruby будет всегда прекращать выполнение, если программа Java выйдет.
Я попробовал код Java на системе Jessie Debian с Java 8u66
Запустите процесс с помощью 'nohup'. –
@ElliottFrisch Является ли 'nohup' чем-то вроде' screen'? Не закончится ли процесс nohup после завершения Ruby? – Ybrin
Вид. И да. –