Запуск демонов с Java - PullRequest
       10

Запуск демонов с Java

0 голосов
/ 27 января 2012

Возможно ли запустить демон из Java. В частности, я пытаюсь использовать MongoDB в Java, однако я хочу, чтобы мое приложение запускало демон mongod, если он еще не запущен. Кажется, я могу запустить все в порядке, код выхода равен 0. Однако он всегда завершается немедленно. Можно ли заставить его работать, а затем выйти с помощью proc.destroy ()?

ProcessBuilder pb = new ProcessBuilder("./bin/mongod","--dbpath data/db"); Process proc = pb.start();

Если я установил точку останова после запуска процесса, логическое значение hasExisted всегда истинно, код выхода равен 0, и я не могу подключиться к нему.

Также это на OS X 10.5, я знаю, что ProcessBuilder очень разборчив в OS

1 Ответ

1 голос
/ 27 января 2012

Ваша команда и путь, вероятно, обработаны неправильно. Вот что нужно сделать в псевдо-Java (groovy) для запуска mongodb после новой установки с brew

ProcessBuilder pb = new ProcessBuilder(["/usr/local/bin/mongod","run", "--config", "/usr/local/Cellar/mongodb/2.0.1-x86_64/mongod.conf"]); 

Process process = pb.start()

InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
        System.out.println(line);
}


int exitValue = process.waitFor()
print exitValue

Вы можете набрать вышеупомянутое непосредственно в отличной консоли.

...