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

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

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

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

net start mysql

我如何在 Linux 中执行同样操作?

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

答案1

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

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

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

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

# runlevel
N 2

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

在桌面上删除 apache 和 Mysql 通常没问题,但要注意删除其他服务。

答案2

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

systemctl disable service

这样就可以了。它将禁用该服务,并且不会在重启后重新启动。要暂时启用,只需开始服务。不使能够

要查找服务名称,请使用

service --status-all

其他命令包括:

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

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

systemctl restart service- 使用它来重新启动服务

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

systemctl enable service- 在下次重启或下次启动事件时打开服务。重启后仍会继续。

systemctl disable service- 在下次重启或下一次停止事件时关闭服务。重启后仍会继续。

答案3

Ubuntu 10.04 正处于两种服务管理系统之间的转换:SysVinit(传统系统,被大多数 Linux 发行版使用)和 Upstart(由 Ubuntu 推动的较新系统,在越来越多的发行版中可用)。

SysVinit 服务管理脚本位于 中/etc/init.d。您可以使用 启动服务,/etc/init.d/SERVICENAME start并使用 停止服务/etc/init.d/SERVICENAME stop。服务是否在启动时自动启动取决于 中是否存在符号链接,其中的/etc/rc?.d数字?是从25(运行级别)。阻止服务在启动时自动启动的最简单方法是使用update-rc.d SERVICENAME disable

Upstart 服务管理配置文件位于 中/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

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

相关内容