参考官方文档https://docs.mongodb.com/v3.6/reference/program/mongod/#options
--fork
fork=true
fork server process 创建服务器进程
fork表示以后台进程模式进行运行,并对这个后台进程产生一个进程号,没有启用fork的话,mongod命令以前端模式运行,mongod命令退出则进程也退出了
没有启用fork,ctrl+c取消后,mongodb进程就退出了
[mongodb@zabbixtest1 mongodb]$ cat /mongodb/mongodb33333.conf |grep fork
#fork=true
[mongodb@zabbixtest1 mongodb]$ mongod -f /mongodb/mongodb33333.conf
^C[mongodb@zabbixtest1 mongodb]$
启用fork,以后台进程模式运行,产生了一个后台进程号是9330
[mongodb@zabbixtest1 mongodb]$ cat /mongodb/mongodb33333.conf |grep fork
fork=true
[mongodb@zabbixtest1 mongodb]$ mongod -f /mongodb/mongodb33333.conf
about to fork child process, waiting until server is ready for connections.
forked process: 9330
child process started successfully, parent exiting
[mongodb@zabbixtest1 mongodb]$
-f 等同于--config
指定配置文件
configuration file specifying additional options 指定附加选项的配置文件
verbose
verbose=true
vvv
vvv=true
quiet
quiet=true
mongodb的日志级别由verbose和quiet参数决定
mongodb默认情况下日志文件非常大,每秒都会记录大量的connection等调试信息,需要修改它的默认日志级别。verbose表示会打印debug信息,vvv表示verbose冗长信息,有vv-vvvvv,v越多则记录的日志信息越详细。
而如果设置了quiet=true参数,表示安静地输出,即不会再有debug信息,日志中只会打印一些关键的信息,比如自动故障切换,系统错误等信息,相当于error log。这时需要注释掉verbose参数。
--pidfilepath
pidfilepath=/mongodb/mongodb27001.pid
指定一个文件位置来保存mongod进程的进程ID, mongod将在其中写入它的PID。这对于结合使用--fork选项跟踪mongod进程非常有用。如果没有指定--pidfilepath选项,进程将不会创建PID文件。
配置文件中加不加pidfilepath参数,启动的时候都会跳出forked process进程号,的区别就是加了pidfilepath后会多出一个存放这个pid的文件,不加的话mongod.lock文件也会存放pid,不过mongod --shutdown后,mongod.lock文件里面的内容会清空,而pidfilepath对应文件里面的内容还在
其实不加pidfilepath参数的话,因为ps一样可以看到pid进程号
[mongodb@zabbixtest1 ~]$ ps -ef|grep mongo
mongodb 28572 1 1 23:07 ? 00:00:01 mongod -f /mongodb/mongodb.conf
--pidfilepath与mongod.lock文件区别
1、pidfilepath对应文件存放pid文件,mongod.lock文件也存放pid文件
2、加了--pidfilepath参数,则同时有pidfilepath对应文件和mongod.lock文件
3、不加--pidfilepath参数,只有mongod.lock文件
4、mongod --shutdown后,mongod.lock文件里面的内容会清空,而pidfilepath对应文件里面的内容还在
5、mongod启动后,pidfilepath对应文件会清空上次启动对应的pid,会重新生成这次启动的pid