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