16.04 命令列出启动时启动的所有服务

Kar*_*son 31 command-line systemd 16.04

我已经安装了 mongodb v3.4。这在启动时启动。

所以我想知道,如何找出启动它的原因(以及如何禁用它在启动时启动)?

以下方法无效:

如何阻止 mongodb 在系统启动时启动(旧)

命令列出启动时启动的服务?(老的)

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)

这是不是activeinactive; 在你的情况下它应该是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)

(这不是答案)