mongod fork 与 nohup

Dan*_*sky 4 linux mongodb

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

与启动 mongo 有什么区别

mongod --fork --logpath=/my/path/mongo.log --logappend
Run Code Online (Sandbox Code Playgroud)

nohup mongod >> /my/path/mongo.log 2>&1 < /dev/null &
Run Code Online (Sandbox Code Playgroud)

?

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

谢谢

Chr*_*rin 6

不同的是,与

mongod --fork --logpath=/my/path/mongo.log
Run Code Online (Sandbox Code Playgroud)

Mongo 本身对进程进行分叉,因此它可以作为守护进程运行。这是预期的方式,因为 mongo 可能会在 fork 新进程之前做一些事情。

nohup mongod >> /my/path/mongo.log 2>&1 < /dev/null &
Run Code Online (Sandbox Code Playgroud)

Mongo 不知道它是分叉的。

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