我在覆盆子-pi 3上运行mongodb 3.0.14,使用raspbian stretch 4.9.41-v7 +(32位)。一切正常,除非mongodb.service必须在系统启动期间启动。它给我以下错误消息,阻止服务启动:
listen():bind()失败错误:99无法为套接字分配请求的地址:192.168.1.16:27017
我的mongodb.conf档案是:
# /etc/mongodb.conf
# minimal config file (old style)
# Run mongod --help to see a list of options
bind_ip = 127.0.0.1,192.168.1.16
#port = 27017
quiet = true
dbpath = /data/db
logpath = /data/log/mongodb.log
logappend = true
storageEngine = mmapv1
我的mongodb.service档案是:
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf
# (file size)
LimitFSIZE=infinity
# (cpu time)
LimitCPU=infinity
# (virtual memory size)
LimitAS=infinity
# (open files)
LimitNOFILE=64000
# (processes/threads)
LimitNPROC=64000
[Install]
WantedBy=multi-user.target
我做了几次测试,改变了[单位] He hecho varias pruebas modificando el [Unit],认为网络尚未初始化,具有以下内容:
[Unit]
Wants=network-online.target
After=network.target network-online.target
Requires=network.target network-online.target
但没有任何作用。
系统完成启动后,我可以手动启动服务,运行正常,无需提供上述错误消息,并且可以从我网络中的任何其他设备访问mongo。
知道启动中发生了什么吗?。
提前致谢。
答案 0 :(得分:0)
只需将data = (item is DBNull) ? String.Empty : item
属性更改为After
After=multi-user.target
更改后,请执行以下操作:
Description=High-performance, schema-free document-oriented database
After=multi-user.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongodb.conf
[Install]
WantedBy=multi-user.target
它很可能会在以后运行$ systemctl daemon-reload
$ systemctl enable mongodb.service
。