暂时停止所有 systemd 计时器单元

jim*_*mis 5 systemd systemd-timer

我正在编写一个脚本来准备我的 Linux 系统进行基准测试。除其他事项外,我想停止所有 systemd 计时器单元,然后恢复此操作。

简而言之,我需要相当于 service crond stop/start.

到目前为止我所发现的只是systemctl list-timers然后手动停止每个,然后手动启动每个。你知道任何更好、更通用的解决方案吗?

Luc*_*ter 9

要停止所有当前正在运行的计时器,您只需使用:

systemctl stop '*.timer'
Run Code Online (Sandbox Code Playgroud)

要稍后重新启动计时器,您必须记住当时正在运行哪些计时器。

timers=$(systemctl list-units --type=timer --state=active --no-legend | awk '{print $1}')
systemctl stop $timers
# ...
systemctl start $timers
Run Code Online (Sandbox Code Playgroud)

(显然单位的模式与非活动单位不匹配,所以systemctl start '*.timer'不起作用。)