15.Linux systemd和守护进程

发布于:2025-08-07 ⋅ 阅读:(26) ⋅ 点赞:(0)

Linux : systemd和守护进程

  • Systemd 核心功能
    • 并行化启动:显著提升系统启动速度
    • 按需激活:仅在需要时启动服务
    • 依赖管理:智能处理服务间依赖关系
    • 进程跟踪:使用 Linux 控制组(cgroups)管理进程
    • 统一管理:替代传统的 SysVinit 和 Upstart
Systemd 单元类型
单元类型 扩展名 功能描述 查看命令
服务单元 .service 系统服务管理 systemctl -t service
套接字单元 .socket IPC通信管理 systemctl -t socket
路径单元 .path 文件系统触发 systemctl -t path
目标单元 .target 启动目标组 systemctl -t target
挂载单元 .mount 文件系统挂载 systemctl -t mount
设备单元 .device 硬件设备管理 systemctl -t device

查看所有支持的类型:systemctl -t help

# 查看所有已激活服务
systemctl list-units --type=service
UNIT                      LOAD   ACTIVE SUB     DESCRIPTION
abrt-ccpp.service         loaded active exited  Install ABRT
abrt-oops.service         loaded active running ABRT kernel 
abrt-xorg.service         loaded active running ABRT Xorg lo
abrtd.service             loaded active running ABRT Automat
accounts-daemon.service   loaded active running Accounts Ser
alsa-state.service        loaded active running Manage Sound
atd.service               loaded active running Job spooling

# 查看所有服务启用状态
systemctl list-unit-files --type=service
UNIT FILE                                     STATE   
abrt-ccpp.service                             enabled 
abrt-oops.service                             enabled 
abrt-pstoreoops.service                       disabled
abrt-vmcore.service                           enabled 
abrt-xorg.service                             enabled 
abrtd.service                                 enabled 
accounts-daemon.service                       enabled 

# 检查特定服务状态
systemctl status chronyd
chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:chronyd(8)
           man:chrony.conf(5)
           
# 检查服务激活状态
systemctl is-active chronyd
-unknown
# 检查服务启用状态
systemctl is-enabled chronyd
-disabled
# 启动服务
systemctl start chronyd
-systemctl is-active chronyd
-active
# 停止服务
systemctl stop chronyd
-systemctl is-active chronyd
-unknown

# 重启服务(断开连接+重载配置)
systemctl restart chronyd

# 重载配置(不中断服务)
systemctl reload chronyd

# 查看动态服务日志
tail -f
命令 效果 文件位置
systemctl enable 启用开机自启 创建 /etc/systemd/system/multi-user.target.wants/serv.service
systemctl disable 禁用开机自启 删除上述链接文件
systemctl mask 完全屏蔽服务 创建链接到 /dev/null
systemctl unmask 解除屏蔽 恢复原始配置,将链接删除
特性 restart reload
操作本质 完整重启服务进程 仅刷新配置文件
进程ID变化 生成新PID 保持原PID不变
服务中断 必然中断连接(秒级) 通常零中断(热加载)
适用场景 二进制更新/重大配置变更 配置文件微调
执行速度 较慢(完整启停) 极快(毫秒级)
资源影响 内存重新加载 共享内存保留
实现要求 所有服务均支持 需服务实现热加载逻辑

补充:

restart: 重启服务。这会先停止服务,然后再启动服务。因此服务进程会中断,会有短暂的停机时间。

reload: 重新加载服务的配置文件。这不会重启服务进程,而是让服务进程重新读取其配置文件,应用新的配置,而不会中断服务

/usr/lib/systemd/system/`:软件包安装的默认配置


网站公告

今日签到

点亮在社区的每一天
去签到