蒙哥德叉vs nohup

我目前正在编写过程pipe理软件。 我们使用的一个包是mongo。

推出mongo和

mongod --fork --logpath=/my/path/mongo.log --logappend 

 nohup mongod >> /my/path/mongo.log 2>&1 < /dev/null & 

我的第一个想法是–fork可以产生更多的进程和/或线程,我build议–fork可以用来改变有效的用户(降级权限)。 但是我们运行在同一个用户(进程pipe理器和mongod)之下,那么还有其他的区别吗?

谢谢

与之不同的是

 mongod --fork --logpath=/my/path/mongo.log 

Mongo本身就是这个过程的一部分,所以它可以像deamon一样运行。 这是预期的方式,因为mongo在分叉新stream程之前可能会做一些事情。

 nohup mongod >> /my/path/mongo.log 2>&1 < /dev/null & 

蒙戈不知道它是分叉的。

我想说让服务器软件做分叉总是会更好,所以可以进行优化。 NoHUP仅适用于没有分叉选项的软件。

我一般同意克里斯托弗P的回答(并投票表决),但在这里更多地谈一谈采伐scheme。 对你给出的例子进行初步的扫描,可以得出结论:如果使用-fork版本的nohup版本,你将会得到更好的日志logging选项。 如果你开始:

 mongod --fork --logpath=/my/path/mongo.log --logappend 

那么,你会有一个更接近的匹配。 它也给你很容易的旋转日志文件(通过信号或命令)的选项:

http://www.mongodb.org/display/DOCS/Logging#Logging-Rotatingthelogfiles

否则,你将需要自己pipe理它,这个过程会认为它正在logging到stdout而不是文件。

不完全是你问的,但有更多的证据赞成 – 福克斯。