0

Javaからデーモンを起動することは可能ですか?具体的には、JavaでMongoDBを使用しようとしていますが、アプリケーションがまだ実行されていない場合は、アプリケーションでmongodデーモンを起動する必要があります。正常に起動できるようです。exitcodeは0です。ただし、常にすぐに終了します。強制的に実行を継続してから、proc.destroy()で終了することは可能ですか?

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

プロセスの開始後にブレークポイントを設定した場合、hasExistedブール値は常にtrueであり、終了コードは0であり、接続できません。

また、これはOS X 10.5にあります、私はProcessBuilderがOS全体で気難しいことを知っています

4

1 に答える 1

1

コマンドとパスが適切に処理されていない可能性があります。brewを使用した新規インストール後にmongodbを実行するには、疑似Java(groovy)で実行する必要があることを次に示します。

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

上記をGroovyコンソールに直接入力できます。

于 2012-01-27T02:26:59.757 に答える