Mongodb
使用 systemd 服務啟動 mongos(mongodb 4.4 分片路由器)
使用官方 RPM 儲存庫的 centos 8 上的 Mongodb 4.4。
我可以從命令行啟動和使用 mongos 就好了:
mongos --config /etc/mongos.conf
但是,如果我嘗試將 mongos 作為 systemd 服務啟動,則會出現錯誤
mongos.service: Failed with result 'timeout'
。在啟動過程中,我可以連接到 mongos,它一直在工作,直到啟動腳本出錯。/etc/mongos.conf 的內容
sharding: configDB: rs_cfg/web05:27017 net: port: 27017 bindIp: 0.0.0.0
的內容
/etc/systemd/system/mongos.service
。基本上我/usr/lib/systemd/system/mongod.service
做了一些小的修改來製作mongos.service
[Unit] Description=MongoDB Database Server Documentation=https://docs.mongodb.org/manual After=network.target [Service] User=mongod Group=mongod Environment="OPTIONS=-f /etc/mongos.conf" EnvironmentFile=-/etc/sysconfig/mongod ExecStart=/usr/bin/mongos $OPTIONS ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb PermissionsStartOnly=true PIDFile=/var/run/mongodb/mongos.pid Type=forking # file size LimitFSIZE=infinity # cpu time LimitCPU=infinity # virtual memory size LimitAS=infinity # open files LimitNOFILE=64000 # processes/threads LimitNPROC=64000 # locked memory LimitMEMLOCK=infinity # total threads (user+kernel) TasksMax=infinity TasksAccounting=false # Recommended limits for mongod as specified in # https://docs.mongodb.com/manual/reference/ulimit/#recommended-ulimit-settings [Install] WantedBy=multi-user.target
journalctl -xe
systemd[1]: mongos.service: Start operation timed out. Terminating. systemd[1]: mongos.service: Failed with result 'timeout'.
檢查所有目錄權限,它只是不創建 pid 文件
/var/run/mongodb/mongos.pid
。我錯過了什麼?
您設置
Type=forking
但 mongos 未配置為分叉。您應該將其重置為預設值,Type=simple
. 或者,您可以添加--fork
到 mongos 命令行,但您還需要指定--pidfile
. PID 文件不是必需的Type=simple
。由於您使用的是 systemd,因此最好不要分叉並讓 systemd 處理管理程序。