服务是必不可少的后台进程,它一般随系统启动,并在关机时关闭。若是你是系统管理员,那么你会按期处理服务。若是你是普通桌面用户,你可能会遇到须要重启服务的状况,例如安装 Barrier 来用于在计算机之间共享鼠标和键盘。或在使用 ufw 设置防火墙时。linux
今天,我将向你展现两种管理服务的方式。你将学习在 Ubuntu 或任何其余 Linux 发行版中启动、中止和重启服务。git
systemd 与 initgithub
现在,Ubuntu 和许多其余发行版都使用 systemd 而不是旧的 init。ruby
在 systemd 中,可使用
systemctl
命令管理服务。bash在 init 中,你可使用
service
命令管理服务。学习你会注意到,即便你的 Linux 系统使用 systemd,它仍然可使用
service
命令(与 init 系统一块儿使用的)。这是由于service
命令实际上已重定向到systemctl
。systemd 引入了向后兼容性,由于系统管理员们习惯使用service
命令。spa在本教程中,我将同时展现
systemctl
和service
命令。3d
我用的是 Ubuntu 18.04,但其余版本的过程也同样。rest
我从 systemd 开始,由于它被普遍接受。code
为了管理服务,你首先须要知道系统上有哪些服务可用。你可使用 systemd 的命令列出 Linux 系统上的全部服务:
systemctl list-unit-files --type service -all
复制代码
此命令将输出全部服务的状态。服务状态有启用、禁用、屏蔽(在取消屏蔽以前处于非活动状态)、静态和已生成。
与 grep 命令 结合,你能够仅显示正在运行的服务:
sudo systemctl | grep running
复制代码
如今,你知道了如何引用全部不一样的服务,你能够开始主动管理它们。
注意: 下列命令中的 <service-name>
应该用你想管理的服务名代替。(好比:network-manager、ufw 等)
要在 Linux 中启动服务,你只需使用它的名字:
systemctl start <service-name>
复制代码
要中止 systemd 服务,可使用 systemctl
命令的 stop
选项:
systemctl stop <service-name>
复制代码
要重启 systemd 服务,可使用:
systemctl restart <service-name>
复制代码
你能够经过打印服务状态来确认你已经成功执行特定操做:
systemctl status <service-name>
复制代码
这将以如下方式输出:
这是 systemd 的内容。如今切换到 init。
init 的命令和 systemd 的同样简单。
要列出全部 Linux 服务,使用:
service --status-all
复制代码
前面的 [ – ]
表明禁用,[ + ]
表明启用。
要在 Ubuntu 和其余发行版中启动服务,使用命令:
service <service-name> start
复制代码
中止服务一样简单。
service <service-name> stop
复制代码
若是你想重启服务,命令是:
service <service-name> restart
复制代码
此外,要检查是否达到了预期的结果,你能够输出服务状态:
service <service-name> status
复制代码
这将以如下方式输出:
最重要的是,这将告诉你某项服务是否处于活跃状态(正在运行)。
今天,我详细介绍了两种在 Ubuntu 或任何其余 Linux 系统上管理服务的很是简单的方法。 但愿本文对你有所帮助。
你更喜欢哪一种方法? 让我在下面的评论中知道!