用途:systemd 是内核启动后的第一个进程(PID 1),作为初始化系统和服务管理器,负责启动、停止、监控系统服务,并管理定时任务、套接字激活、target 与依赖关系。
主要能力:通过 unit 文件定义服务、定时器、套接字等资源;支持服务生命周期管理(start/stop/restart/reload/enable/disable/mask);用 timer 替代 cron;用 socket activation 按需启动;用 target 组织启动阶段;用 After/Before 控制顺序,用 Wants/Requires 表达依赖;支持 drop-in 覆盖配置与安全加固。
使用方式:系统 unit 位于 /etc/systemd/system/(管理员创建,优先级最高)、/lib/systemd/system/(软件包安装,勿直接编辑)、/run/systemd/system/(运行时临时);用户 unit 位于 ~/.config/systemd/user/,通过 systemctl --user 管理。常用命令:systemctl status/start/stop/restart/reload/enable --now/disable/mask <unit>;编辑 unit 后必须执行 sudo systemctl daemon-reload;查看日志用 journalctl -u <unit> 或 journalctl --user -u <unit>;查看定时器用 systemctl list-timers;查看启动耗时用 systemd-analyze blame;查看依赖用 systemctl list-dependencies <unit>。修改配置建议用 sudo systemctl edit <unit> 生成 drop-in,避免直接改 /lib 下文件。
适用场景:管理自建服务、编写开机自启脚本、用 timer 替代 cron、按需启动服务、排查启动失败与依赖问题、对服务做权限与安全限制。
限制与注意:编辑 unit 后不执行 daemon-reload 是最常见错误;After= 只表示顺序而非依赖,需配合 Wants=/Requires=;Requires= 为硬依赖,被依赖单元停止会导致本单元停止;Type= 决定启动完成判定(simple/forking/notify/oneshot/dbus);[Install] 段缺失时 enable 无效;用户实例默认登录时启动,需 loginctl enable-linger 才能在开机时运行;reload 发送 SIGHUP,仅当服务支持时有效。资料未提供具体版本、平台兼容范围与收费信息。