systemd 서비스를 사용하여 mongos(mongodb 4.4 샤딩 라우터)를 시작합니다.

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

저널ctl -xe

systemd[1]: mongos.service: Start operation timed out. Terminating.
systemd[1]: mongos.service: Failed with result 'timeout'.

모든 디렉토리 권한을 확인했지만 pid 파일이 생성되지 않습니다 /var/run/mongodb/mongos.pid.

내가 무엇을 놓치고 있나요?

답변1

설정했지만 Type=forkingmongos가 포크되도록 구성되지 않았습니다. 이를 기본값인 으로 재설정해야 합니다 Type=simple. 또는 --forkmongos 명령줄에 추가할 수 있지만 --pidfile. 에는 PID 파일이 필요하지 않습니다 Type=simple. systemd를 사용하고 있으므로 분기하지 않고 systemd가 프로세스 관리를 처리하도록 하는 것이 가장 좋습니다.

관련 정보