systemd 和 systemctl 是什么?

  • systemd 和 systemctl
  • 使用systemctl管理系统服务的基本操作
  • 总结
  • 感谢

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 enablesystemctl 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

感谢

好啦,这次的分享就到这里,感谢大家看到这里

你可能感兴趣的:(linux,服务器)