我目前正在编写过程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而不是文件。
不完全是你问的,但有更多的证据赞成 – 福克斯。