如何在Ubuntu Systemd/Upstart中启用或者禁用服务
通常,需要在我们的Ubuntu系统上临时或者永久启用或者禁用服务。
有时,我们可能需要某些服务在启动时自动启动,例如,SSH或者Web服务器,有时我们可能需要禁用我们不再需要的服务,并且正在播放CPU和内存。
在本教程中,我们会查看我们如何在Ubuntu上启用和禁用服务。
为此,我们必须首先了解ubuntu有3个主初始系统
- Systemd
- Upstart
- SysV
每个初始系统都有不同的启动和停止服务方式。
我们会看看其中的每一个。
如何在SystemD Init中启用和禁用服务
要在SystemD中启动服务,请执行以下命令:
systemctl start service-name
例如,要启动Apache Web服务,请运行
systemctl start apache2
要验证服务是否正在运行,请运行
systemctl status apache2
输出
● apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Thu 2016-03-15 17:09:05 UTC; 35s ago Docs: man:systemd-sysv-generator(8) CGroup: /system.slice/apache2.service ├─2499 /usr/sbin/apache2 -k start ├─2502 /usr/sbin/apache2 -k start └─2503 /usr/sbin/apache2 -k start Mar 15 17:09:04 ip-172-31-41-251 systemd[1]: Starting LSB: Apache2 web server... Mar 15 17:09:04 ip-172-31-41-251 apache2[2475]: * Starting Apache httpd web ser Mar 15 17:09:05 ip-172-31-41-251 apache2[2475]: * Mar 15 17:09:05 ip-172-31-41-251 systemd[1]: Started LSB: Apache2 web server.
停止服务运行服务
systemctl stop apache2
确认服务未运行,运行
systemctl status apache2
输出
● apache2.service - LSB: Apache2 web server Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: inactive (dead) since Thu 2016-03-15 17:19:47 UTC; 12s ago Docs: man:systemd-sysv-generator(8) Process: 2822 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS Process: 2687 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCE Mar 15 17:10:11 ip-172-31-41-251 systemd[1]: Starting LSB: Apache2 web server... Mar 15 17:10:11 ip-172-31-41-251 apache2[2687]: * Starting Apache httpd web ser Mar 15 17:10:12 ip-172-31-41-251 apache2[2687]: * Mar 15 17:10:12 ip-172-31-41-251 systemd[1]: Started LSB: Apache2 web server. Mar 15 17:19:46 ip-172-31-41-251 systemd[1]: Stopping LSB: Apache2 web server... Mar 15 17:19:46 ip-172-31-41-251 apache2[2822]: * Stopping Apache httpd web ser Mar 15 17:19:47 ip-172-31-41-251 apache2[2822]: * Mar 15 17:19:47 ip-172-31-41-251 systemd[1]: Stopped LSB: Apache2 web server.
启用Apache2服务启动运行
systemctl enable apache2
在启动运行时禁用Apache2服务
systemctl disable apache2
重新启动服务
systemctl restart apache2
检查服务目前是否已配置为在下次启动时启动
systemctl is-enabled apache2
输出
Executing /lib/systemd/systemd-sysv-install is-enabled apache2 enabled
检查服务是否处于活动状态
systemctl is-active apache2
输出
active
如何完全删除SystemD服务
如果我们安装了包,稍后决定我们不再需要它了。
你如何完全去除它?
按照下面的命令。
首先,停止服务
systemctl stop service-name
然后禁用服务
systemctl disable service-name
在Systemd中删除服务
rm /etc/systemd/system/service-name
rm /etc/systemd/system/service-name/[related symlinks]
重新加载系统
systemctl daemon-reload
终于运行了,
systemctl reset-failed
如何在Upstart Init中启用和禁用服务
Upstart Init系统在SystemD之前亮相它在Ubuntu 9.10中使用给Ubuntu 14.10.
后来在Ubuntu 15.04和更新版本中逐步淘汰SystemD init的铺路方式。
在此示例中,让我们看看我们如何在Ubuntu 14.04中启动和停止,启用和禁用服务。
Upstart利用配置文件来控制服务。
这些文件在/etc/init目录下保持。
这些文件由斯坦扎斯组织的纯文本部分组成,每个节斯坦扎描述了服务以及它的工作原理。
检查服务是否正在运行或者未运行以下命令
initctl status service-name
或者
service service-name status
或者
status service-name
在此示例中,我们将检查杯子的状态,Linux打印服务器。
initctl status cups
或者
service cups status
或者
status cups
输出
cups start/running, process 3029
要停止服务运行以下命令
initctl stop cups
或者
service cups stop
或者
stop cups
输出
cups stop/waiting
在Upstart Init中启用服务
在/etc/init/*.conf文件中,我们将找到跳跃 - 启动服务的"重生"指令,应该意外地崩溃,也可以重新启动。
它通常默认启用。
例如,在下面的/etc/init/cups.conf文件中,
第一个参数(3)是尝试重新启动的尝试次数,第二个参数(12)是重试之间的时间间隔。
如果它未能自动重启。
它将保持在停止状态。
禁用Upstart Init中的服务
在下面运行命令
echo manual >> /etc/init/service.override
这将创建一个覆盖文件,禁用服务而无需更改作业定义。
对于杯子服务,命令将是
echo manual >> /etc/init/cups.override
重新启动系统后,杯子将处于停止状态。
如果我们希望重新启用该服务,则必须删除/etc/init/cups.override文件。
SYSV-RC-CONF工具
这是一个基于文本的控制台,为我们提供了计划启动的不同服务和运行势的概述。
它可以使用以下命令安装
apt-get install sysv-rc-conf
执行工具,运行
sysv-rc-conf
Jobs-admin工具
这是另一个功能,允许我们在GUI环境中控制服务和进程。
我们可以通过运行安装此操作。
apt-get install jobs-admin
如何在SYSV init中启用和禁用服务
在Sysv Init运行中启用服务
update-rc.d enable service-name
例如,如果要启用Apache Web服务器,则会运行
update-rc.d enable apache2
禁用服务,运行
update-rc.d disable service-name
例如
update-rc.d disable apache2