【发布时间】:2012-01-27 01:40:33
【问题描述】:
是否可以从 java 启动守护程序。具体来说,我正在尝试在 java 中使用 MongoDB,但是如果 mongod 守护程序尚未运行,我希望我的应用程序启动它。我似乎可以启动它,exitcode为0。但是它总是立即退出。是否可以强制它保持运行,然后使用 proc.destroy() 退出它?
ProcessBuilder pb = new ProcessBuilder("./bin/mongod","--dbpath data/db");
Process proc = pb.start();
如果我在启动进程后设置断点,hasExisted 布尔值始终为真,退出代码为 0,我无法连接。
这也是在 OS X 10.5 上,我知道 ProcessBuilder 在整个操作系统中都很挑剔
【问题讨论】:
-
./mongod --dbpath data/db不会在守护进程模式下启动 mongodb。您必须使用./mongod --fork --dbpath data/db --logpath /var/log/mongodb.log --logappend将其作为守护进程启动。如果不是作为守护进程启动,您必须自己处理 stdin/stdout/stderr 以处理以ProcessBuilder.start开头的进程
标签: java processbuilder