我正在运行一项名为"thinkfan“的服务,用于控制thinkpad笔记本电脑的风扇速度。服务从文件夹中的临时文件读取数据温度。这个文件不时被创建,但是如果thinkfan恰好在文件创建之前启动,它就会崩溃。为了防止启动时出现这种情况,我添加了行
ExecStartPre=/bin/sleep 20到systemd文件
[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问题是,同样的情况发生在从待机状态醒来时,所以每次我的笔记本电脑在恢复后醒来时,我都在寻找一种重新启动服务的方法。
发布于 2019-12-11 16:26:34
我想出了怎么做:只需将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.target和Restart=always。
https://unix.stackexchange.com/questions/556406
复制相似问题