我目前正在编写流程管理软件.我们使用的一个包是mongo.
启动mongo与之间有什么区别吗?
mongod --fork --logpath=/my/path/mongo.log --logappend
和
nohup mongod >> /my/path/mongo.log 2>&1 < /dev/null &
?
我的第一个想法是–fork可以产生更多的进程和/或线程,我被建议–fork可以用于更改有效用户(降级权限).但是我们在同一个用户(进程管理器和mongod)下运行,所以还有其他区别吗?
谢谢
解决方法
不同之处在于
mongod --fork --logpath=/my/path/mongo.log
Mongo本身会分配这个过程,因此它可以作为一个deamon运行.这是预期的方式,因为mongo可能会在分配新进程之前执行某些操作.
同
nohup mongod >> /my/path/mongo.log 2>&1 < /dev/null &
Mongo不知道它是分叉的.
我说让服务器软件进行分叉总是更好,这样它就可以进行优化. NoHUP仅适用于没有分叉选项的软件.