Kar*_*son 31 command-line systemd 16.04
我已经安装了 mongodb v3.4。这在启动时启动。
所以我想知道,如何找出启动它的原因(以及如何禁用它在启动时启动)?
以下方法无效:
命令列出启动时启动的服务?(老的)
Rav*_*ina 61
就我现在而言,服务是在 Ubuntu 中自动启用的,所以当你安装类似的东西时,Apache
它会在启动时启动。
要找出启动时已运行的所有服务:
systemctl list-units --type service
Run Code Online (Sandbox Code Playgroud)
这将显示在启动时已加载并现在处于活动状态的所有服务。如果您想获取所有服务的列表,无论它们是否处于活动状态:
systemctl list-units --type service --all
Run Code Online (Sandbox Code Playgroud)
您可以做的另一件事是运行:
systemctl list-dependencies --type service
Run Code Online (Sandbox Code Playgroud)
然后点击/
并搜索mongodb
查看service
/target
依赖它并运行它。
你也可以运行:
locate mongodb.service
Run Code Online (Sandbox Code Playgroud)
这会产生类似的东西:
/lib/systemd/system/multi-user.target.wants/mongodb.service
Run Code Online (Sandbox Code Playgroud)
那么您就会知道它是作为多用户目标的一部分启动的,替代方法是:
$ systemctl cat mongodb.service | grep -i wantedby
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
要确定它是否处于活动状态(将在启动/引导时运行):
systemctl is-active mongodb
Run Code Online (Sandbox Code Playgroud)
这是不是active
或inactive
; 在你的情况下它应该是active
.
要阻止它在启动时启动,我们应该禁用它:
sudo systemctl disable mongodb
Run Code Online (Sandbox Code Playgroud)
并确保没有其他东西(没有其他服务)可以启动它,我们屏蔽它:
systemctl mask mongodb
Run Code Online (Sandbox Code Playgroud)
所以它将被链接到/dev/null
并且不能再自动或手动启动。
我不知道mongodb
服务名称,请尝试点击它将完成的选项卡。我猜是mongodb
;)
小智 14
要知道在启动时是否启用了服务,正确的命令是:
systemctl is-enabled apache2
enabled
Run Code Online (Sandbox Code Playgroud)
您可以通过更改状态来自己尝试
systemctl enable apache2
systemctl disable apache2
Run Code Online (Sandbox Code Playgroud)
(这不是答案)