我正在使用 Ubuntu 16。当我尝试运行systemctl list-unit-files --type=service
但是当我尝试运行时systemctl start mongodb
它说
Failed to start mongodb.service: Unknown unit: mongodb.service
运行systemctl status mongodb.service
输出Failed to get properties: No such interface ''
这是mongodb.service
单元文件
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
答案1
根据您安装 MongoDB 的时间和位置,包可能被命名为“mongod”或“mongodb”。显然,您用这两个名字安装了它。我怀疑您的问题源于重复的包。
首先,检查您实际安装了哪些 MongoDB 包:
dpkg -l '*mongod*' | grep ii
然后,对于每个已安装的“服务器”包,检查哪些 /etc/“init”或“service”文件属于实际已安装的包。就我而言,我已mongodb-org-server
在 16.04 上安装,结果如下所示:
$ dpkg -L mongodb-org-server | grep systemd
/lib/systemd
/lib/systemd/system
/lib/systemd/system/mongod.service
如果你在“/etc/init”中有另一个用于“/etc/systemd”的文件不是与您实际安装的 MongoDB 版本相关,请将其删除。您可能对旧包使用了“apt-get remove”,它不会自动清除/etc 中的文件
如果您添加或删除了 systemd.service
文件,请使用sudo systemctl daemon-reload
确保您的更改得到反映。
答案2
systemctl start mongodb
我在运行和时遇到了同样的问题systemctl status mongodb.service
。在我的例子中,Ubuntu 从 14.04 更新到 16.04,并使用 upstart-sysv 而不是 systemd-sysv。因此,所有systemctl
命令都不起作用。
如果您的系统使用 upstart-sysv,则需要为 Ubuntu 14.04 安装 MongoDB,并且不需要创建任何 mongodb.service 配置。只需使用以下命令运行 mongodb:
service mongod start
它帮助了我,希望它也能帮助别人。