systemd是linux用来守护进程的。d即daemon(守护进程)
我们通过systemctl命令管理守护进程.
systemctl 命令
|
|
使用上述命令开启/停止/设置自启动/重载 某个服务。
|
|
Unit
systemd对每项系统资源称为Unit
一共有12种Unit.
Service Unit
:系统服务Target Unit
:多个 Unit 构成的一个组Device Unit
:硬件设备Mount Unit
:文件系统的挂载点Automount Unit
:自动挂载点Path Unit
:文件或路径Scope Unit
:不是由 Systemd 启动的外部进程Slice Unit
:进程组Snapshot Unit
:Systemd 快照,可以切回某个快照Socket Unit
:进程间通信的 socketSwap Unit
:swap 文件Timer Unit
:定时器
本文中我们只关注用的比较多的Service和Timer
Unit
配置
Unit配置文件通常在/usr/lib/systemd/system/
中。
一个.service文件:
|
|
Requires中写的是其他unit,如果其他unit未运行,本unit将启动失败。 WantedBy一般写的是multi-user.target。
Target 是 systemd用以代替RunLevel的,multi-user.target即init 3(多用户,系统正常启动)
一个Unit想要能被启动,必须有Install
Timer 配置
除了基础的[Unit]
[Install]
还需要有
[Timer]
|
|
OnActiveSec
:定时器生效后,多少时间开始执行任务OnBootSec
:系统启动后,多少时间开始执行任务OnStartupSec
:Systemd 进程启动后,多少时间开始执行任务OnUnitActiveSec
:该单元上次执行后,等多少时间再次执行OnUnitInactiveSec
: 定时器上次关闭后多少时间,再次执行OnCalendar
:基于绝对时间,而不是相对时间执行AccuracySec
:如果因为各种原因,任务必须推迟执行,推迟的最大秒数,默认是60秒Unit
:真正要执行的任务,默认是同名的带有.service后缀的单元Persistent
:如果设置了该字段,即使定时器到时没有启动,也会自动执行相应的单元WakeSystem
:如果系统休眠,是否自动唤醒系统
参考: