我最近从 Windows 迁移到 Linux(xubuntu)
我是一名开发人员,安装了我需要的一切,LAMP。在 Windows 中,我习惯关闭所有不必要的服务 - 我不需要 Apache 或 MySQL 服务一直运行。每当我需要 MySQL 时,我都会使用:
net start mysql
我如何在 Linux 中执行同样操作?
- 禁用不需要的守护进程自动启动?
- 仅在我需要时启动它们?
答案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
数字?
是从2
到5
(运行级别)。阻止服务在启动时自动启动的最简单方法是使用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 脚本。