%20usando%20o%20servi%C3%A7o%20systemd.png)
Mongodb 4.4 no centos 8 usando repositório RPM oficial.
Posso iniciar e usar o mongos na linha de comando perfeitamente:
mongos --config /etc/mongos.conf
No entanto, se eu tentar iniciar o mongos como serviço systemd, ocorrerá o erro mongos.service: Failed with result 'timeout'
. Durante o processo de inicialização, posso me conectar ao mongos e ele funciona até ocorrer um erro no script de inicialização.
o conteúdo de /etc/mongos.conf
sharding:
configDB: rs_cfg/web05:27017
net:
port: 27017
bindIp: 0.0.0.0
O conteúdo de /etc/systemd/system/mongos.service
. Basicamente peguei /usr/lib/systemd/system/mongod.service
e fiz pequenas modificações para produzirmongos.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
diárioctl -xe
systemd[1]: mongos.service: Start operation timed out. Terminating.
systemd[1]: mongos.service: Failed with result 'timeout'.
Verificadas todas as permissões do diretório, apenas não cria o arquivo pid /var/run/mongodb/mongos.pid
.
o que estou perdendo?
Responder1
Você definiu Type=forking
, mas o mongos não está configurado para fork. Você deve redefinir isso para o padrão, Type=simple
. Alternativamente, você pode adicionar --fork
à linha de comando do mongos, mas também precisará especificar --pidfile
. O arquivo PID não é necessário com Type=simple
. Como você está usando o systemd, é melhor não bifurcar e deixar o systemd cuidar do gerenciamento do processo.