hello大家好😊
systemd 是现代 Linux 系统中的初始化系统和服务管理器,而 systemctl 是用于与 systemd 交互的命令行工具。systemctl 提供了一种便捷的方式来管理 systemd 所控制的服务。下面详细介绍 systemd 和 systemctl 的联系以及它们之间的区别
systemd 和 systemctl
- systemd 是一个守护进程,systemctl 是命令行管理工具:systemd 是用于管理 Linux 系统的初始化过程和后台服务的初始化系统,而 systemctl 则是用于与 systemd 交互的命令行工具。
- systemctl 可以管理 systemd 单元:在 systemd 中,所有的服务、套接字、设备等都被视为“单元”。systemctl 可以管理这些单元,启动、停止、重启、查看状态以及管理它们。
使用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 |
感谢 💖
好啦,这次的分享就到这里,感谢大家看到这里🤞