一定時間停止後のサービスの再起動

一定時間停止後のサービスの再起動

私はThinkPadノートブックのファン速度を制御する「thinkfan」というサービスを実行しています。サービスはフォルダの一時ファイルからデータ温度を読み込みます。ファイルは頻繁に作成されますが、ファイルが作成される前に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.targetちょうどとを追加しましたRestart=always

おすすめ記事