如何防止 Linux 服务自动启动?

Avi*_*viv 16 linux boot services daemon

我最近从 Windows 迁移到 Linux (xubuntu)

我是一名开发人员,已经安装了我需要的一切,LAMP。在 Windows 中,我曾经关闭所有不必要的服务——我不需要 Apache 或 MySQL 服务一直运行。每当我需要 MySQL 时,我都会使用:

net start mysql
Run Code Online (Sandbox Code Playgroud)

我如何在 Linux 中做同样的事情?

  1. 禁用不需要的守护进程自动启动?
  2. 仅在我需要它们时才启动它们?

小智 33

对于使用 systemd(15.04 及更高版本)的 Ubuntu 版本,请使用:

systemctl disable service
Run Code Online (Sandbox Code Playgroud)

这将完成工作。它将禁用该服务,并且在重新启动后不会重新启动。要临时启用,只需启动服务。不启用

要查找服务名称,请使用

service --status-all
Run Code Online (Sandbox Code Playgroud)

其他命令是:

systemctl start service- 使用它来启动服务。重启后不存在

systemctl stop service- 使用它来停止服务。重启后不存在

systemctl restart service - 用它来重启服务

systemctl status service- 显示服务的状态。告诉服务当前是否正在运行。

systemctl enable service- 在下一次重新启动或下一次启动事件时打开服务。重启后依然存在。

systemctl disable service- 在下一次重新启动或下一次停止事件时关闭服务。重启后依然存在。

  • 遗憾的是这不是公认的答案:)。谢谢,我完全忘记了那个命令。 (3认同)

hul*_*ist 13

在大多数 Linux 发行版中,您可以通过(以 root 身份或使用 sudo)运行以下命令来手动启动/停止服务:

# /etc/init.d/apache2 start
# /etc/init.d/mysqld start

# /etc/init.d/apache2 stop
# /etc/init.d/mysqld stop
Run Code Online (Sandbox Code Playgroud)

哪些服务自动启动由 /etc/rc[runlevel].d/ 中的文件链接控制。以 root 身份使用命令“runlevel”查找当前运行级别

# runlevel
N 2
Run Code Online (Sandbox Code Playgroud)

此处表示运行级别 2 现在您只需删除 /etc/rc2.d/ 中不想启动的那些文件。

在桌面上删除 apache 和 Mysql 通常是可以的,但要注意删除其他服务。

  • 即使您说的是“大多数发行版”,这也是相当具有误导性的。我会把你的食谱限定为发行版特定的。 (3认同)

Gil*_*il' 8

Ubuntu 10.04 正处于两个服务管理系统之间的过渡阶段:SysVinit(传统系统,被大多数 Linux 发行版使用)和 Upstart(由 Ubuntu 推出的更新系统,并在越来越多的发行版中可用)。

SysVinit 服务管理脚本位于/etc/init.d. 您可以使用 启动/etc/init.d/SERVICENAME start和停止服务/etc/init.d/SERVICENAME stop。服务是否在引导时自动启动取决于符号链接的存在,/etc/rc?.d其中 where?是一个数字 from 2to 5运行级别)。防止服务在启动时自动启动的最简单方法是使用update-rc.d SERVICENAME disable.

新贵服务管理配置文件位于/etc/init. 您可以使用 启动start SERVICENAME和停止服务stop SERVICENAME。配置文件/etc/init/SERVICENAME.conf包含一行指示何时启动服务:start on …. 禁用这些服务的一种简单方法是将该行更改为start on never and (…). 如果您不想编辑该文件,您还可以通过将其重命名为不以.conf.

dpkg-divert --add --local --divert /etc/init/foo.conf.disabled --rename /etc/init/foo.conf
Run Code Online (Sandbox Code Playgroud)

从 Ubuntu 10.04 开始,Apache 带有一个 SysVinit 脚本,而 Mysql 带有一个 Upstart 脚本。