systemd 是现代 Linux 系统中的初始化系统和服务管理器,而 systemctl 是用于与 systemd 交互的命令行工具。systemctl 提供了一种便捷的方式来管理 systemd 所控制的服务。下面详细介绍 systemd 和 systemctl 的联系以及它们之间的区别
查看服务状态:使用 systemctl status 单元
来查看特定单元的状态。
示例:
systemctl status sshd.service
启动服务:使用systemctl start 服务单元
命令。对于新的服务或者不经常使用的服务,也就是没有在系统引导时启动的服务,我们有时候需要手动启动服务。(注意要使用root权限)
示例:
systemctl status sshd.service # 要启动服务,首先验证它的状态,看看是否正在运行
systemctl start sshd.service # .service后缀通常可以省略
停止服务:使用systemctl stop 服务单元
命令手动停止服务。(注意要使用root权限)
示例:
systemctl stop sshd.service
重新启动服务:使用systemctl restart 服务单元
命令来充新启动服务。在这个过程中,服务将停止然后启动。所以进程ID会改变,也会关联新的进程ID。(注意要使用root权限)
示例:
systemctl restart sshd.service
重新加载服务:使用systemctl reload 服务单元
命令。有的时候我们只需要重新加载服务的配置文件,而无需重新启动,这个过程就是服务重新加载。在这个过程中不会更改与各种服务进程关联的进程ID。(注意要使用root权限)
示例:
systemctl reload sshd.service
使服务在系统引导时启动或停止:
要使服务在系统引导时自动启动,使用systemctl enable
命令。这个命令会从服务单元文件(通常位于 /usr/lib/systemd/system 目录)创建一个软链接,指向磁盘上供systemd寻找文件的位置(一般是 /etc/systemd/system目录)。但是使用这个命令后,对于当前会话中还没有启动的服务,并不会立即启动,而是在下次系统启动时再启动。所以想要立即启动服务并使其在引导期间自动启动,需要systemctl enable
和systemctl start
一起使用。
示例:
systemctl enable sshd.service
类似的,如果想让一个服务不在系统引导时自动启动,使用systemctl disable
命令。它会删除在启动服务时创建的符号链接。当然,使用这个命令并不会立即停止该服务。
示例:
systemctl disable sshd.service
本篇涉及到的systemctl命令:
任务 | 命令 |
---|---|
查看有关单元状态的详细信息 | systemctl status UNIT |
在运行中的系统上停止一项服务 | systemctl stop UNIT |
在运行中的系统上启动一项服务 | systemctl start UNIT |
在运行中的系统上重新启动一项服务 | systemctI restart UNIT |
重新加载运行中服务的配置文件 | systemctl reload UNIT |
将服务配置为在系统引导时启动 | systemctl enable UNIT |
禁止服务在系统引导时启动 | systemctl disable UNIT |
好啦,这次的分享就到这里,感谢大家看到这里