似乎 MongoDB 3.6 不会自动配置为在崩溃时重新启动。查看与 Ubuntu 16.04LTS 的最新 .deb 包捆绑在一起的 systemd 服务,它似乎没有配置重新启动:
$ sudo systemctl cat mongod
# /lib/systemd/system/mongod.service
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual
[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
# 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 for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
[Install]
WantedBy=multi-user.target
发送 SIGKILL 和 SIGSEGV 都会杀死进程并且不会重新启动。我不确定这些是否被 systemd “捕获”,而不仅仅是重新启动。
所以有几个问题:这对于像数据库这样的高可用性服务至关重要吗?它确实看起来像。MongoDB 是否有任何理由不对其进行开箱即用的配置?