深入理解 Linux systemd 单元类型及配置详解
在 Linux 系统中,systemd 是一种强大的初始化系统和服务管理工具,它通过**单元(Unit)**来管理服务、文件系统、设备等。systemd 支持多种单元类型,如服务单元(.service
)、目标单元(.target
)、挂载单元(.mount
)、设备单元(.device
)、计时单元(.timer
)。本文将全面介绍这些单元的用途、常用配置项及实际应用场景。
1. 服务单元(*.service)
定义
服务单元用于管理系统服务,例如 nginx.service
或 mysql.service
。主要负责定义服务的启动、停止、重启行为。
常用配置项
-
Type=
指定服务类型:simple
(默认):ExecStart
启动的进程就是主进程。forking
:后台运行服务,ExecStart
会派生子进程。oneshot
:执行一次性任务后退出。notify
:服务通过sd_notify
通知启动完成。idle
:延迟启动,直到所有任务完成。
-
ExecStart=
指定启动服务的命令。 -
ExecStop=
定义停止服务的命令。 -
Restart=
定义服务的重启策略:always
:总是重启。on-failure
:仅在非正常退出时重启。
-
User= 和 Group=
定义服务运行的用户和组。