Starten Sie Mongos (MongoDB 4.4 Sharding Router) mit dem Systemd-Dienst

Starten Sie Mongos (MongoDB 4.4 Sharding Router) mit dem Systemd-Dienst

Mongodb 4.4 auf CentOS 8 mit offiziellem RPM-Repo.

Ich kann Mongos problemlos von der Befehlszeile aus starten und verwenden: mongos --config /etc/mongos.conf

Wenn ich jedoch versuche, Mongos als Systemd-Dienst zu starten, wird der Fehler angezeigt mongos.service: Failed with result 'timeout'. Während des Startvorgangs kann ich eine Verbindung zu Mongos herstellen und es funktioniert, bis der Startskriptfehler auftritt.

der Inhalt von /etc/mongos.conf

sharding:
  configDB: rs_cfg/web05:27017

net:
  port: 27017
  bindIp: 0.0.0.0

Der Inhalt von /etc/systemd/system/mongos.service. Im Grunde habe ich genommen /usr/lib/systemd/system/mongod.serviceund geringfügige Änderungen vorgenommen, um zu produzierenmongos.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'.

Habe alle Verzeichnisberechtigungen geprüft, die PID-Datei wird einfach nicht erstellt /var/run/mongodb/mongos.pid.

Was vermisse ich?

Antwort1

Sie haben festgelegt Type=forking, aber Mongos ist nicht für Fork konfiguriert. Sie sollten dies auf den Standardwert zurücksetzen. Type=simpleAlternativ können Sie --forkzur Mongos-Befehlszeile hinzufügen, müssen aber auch angeben --pidfile. Die PID-Datei ist mit nicht erforderlich Type=simple. Da Sie systemd verwenden, ist es am besten, einfach nicht zu forken und systemd die Verwaltung des Prozesses zu überlassen.

verwandte Informationen