Linux系统守护进程管理器

提供了一种替代传统的SysV init系统的方法,旨在提高系统的启动速度和运行效率,并且提供了更为强大的服务管理和依赖关系处理机制。

systemd 是一个系统和服务管理器,它是许多现代Linux发行版(如Fedora、Red Hat Enterprise Linux、Debian、Ubuntu等)中默认使用的初始化系统。systemd 提供了一种替代传统的SysV init系统的方法,旨在提高系统的启动速度和运行效率,并且提供了更为强大的服务管理和依赖关系处理机制。

systemd的特点

并发启动:systemd 支持并行启动服务,这意味着它可以在同一时间启动多个服务,而不是像传统init系统那样顺序启动。 依赖关系管理:它可以自动处理服务之间的依赖关系,确保当一个服务启动时,其依赖的服务也已经启动。 Socket激活:允许服务监听套接字,当有连接请求到达时自动启动服务。 设备挂载和挂载点激活:systemd 可以基于设备挂载状态来控制服务的启动。 统一的日志记录:通过journald,systemd 统一了系统日志记录方式,并且提供了比传统syslog更丰富的查询和过滤功能。 资源控制:可以对服务的资源使用(如CPU和内存)进行限制。 服务单元文件:systemd 使用.service、.socket、.timer等单元文件来描述服务、套接字和定时任务等。

基本命令

一些常用的systemd命令包括:

  • systemctl list-unit-files:列出所有已知的单元文件。
  • systemctl start <service>:启动指定的服务。
  • systemctl stop <service>:停止指定的服务。
  • systemctl restart <service>:重启指定的服务。
  • systemctl status <service>:查看指定服务的状态。
  • systemctl enable <service>:使服务开机自启。
  • systemctl disable <service>:禁止服务开机自启。
  • systemctl daemon-reload:重新加载systemd配置。
  • journalctl:查看系统日志。

单元文件示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[Unit]
Description=The Nginx HTTP Server
After=network.target

[Service]
User=nginx
group=nginx
ExecStart=/usr/sbin/nginx
Restart=always
RestartSec=10s
Type=forking
PIDFile=/run/nginx.pid

[Install]
WantedBy=multi-user.target
使用 Hugo 构建
主题 StackJimmy 设计