暂停一定时间后重新启动服务

暂停一定时间后重新启动服务

我正在运行一项名为“thinkfan”的服务,用于控制我的 thinkpad 笔记本电脑的风扇速度。该服务从文件夹中的临时文件读取数据温度。该文件时不时会创建,但如果 thinkfan 碰巧在该文件创建之前启动,则会崩溃。为了防止启动时出现这种情况,我添加了这一行

ExecStartPre=/bin/sleep 20

到系统文件

[Unit]
Description=simple and lightweight fan control program
After=syslog.target

[Service]
Type=forking
EnvironmentFile=-/etc/default/thinkfan
ExecStartPre=/bin/sleep 20
ExecStart=/usr/sbin/thinkfan $DAEMON_ARGS
PIDFile=/var/run/thinkfan.pid
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

问题是从待机状态唤醒时也会发生同样的情况,因此我正在寻找一种方法,可以在每次笔记本电脑恢复后唤醒几秒钟后重新启动服务。

答案1

我想出了如何做到这一点:只需将 systemd 文件更改为

[Unit]
Description=simple and lightweight fan control program
After=syslog.target
After=suspend.target

[Service]
Type=forking
EnvironmentFile=-/etc/default/thinkfan
ExecStartPre=/bin/sleep 20
ExecStart=/usr/sbin/thinkfan $DAEMON_ARGS
PIDFile=/var/run/thinkfan.pid
ExecReload=/bin/kill -HUP $MAINPID
Restart=always

[Install]
WantedBy=multi-user.target

我只是添加了After=suspend.targetRestart=always

相关内容