일정시간 정지 후 서비스 재시작

일정시간 정지 후 서비스 재시작

저는 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.

관련 정보