다음 타이머를 자동으로 시작하는 방법은 무엇입니까? 이제 타이머는 내가 이 작업을 수행할 때만 작동합니다 systemctl start while-test.timer
. 그렇지 않으면 타이머를 활성화하더라도 자동으로 시작되지 않습니다. 실행 systemctl daemon-reload
하거나 다시 시작한 후에도 마찬가지입니다.
while-test .service
-------------------
[Unit]
Description=While loop test script
[Service]
Type=simple
ExecStart=/home/user/bash/while-test.sh
[Install]
WantedBy=default.target
그리고
while-test .timer
----------------
[Unit]
Description=While loop test script timer
[Timer]
OnCalendar=Mon *-*-* 10:52:00
Unit=while-test.service
[Install]
WantedBy=default.service
답변1
이것이 OP 질문의 원인은 아닐 수도 있지만 이번 주에 나는 똑같은 문제를 겪었고 내 경우에는 시스템이 타이머를 로드한 후 부팅 시 마운트된 드라이브 파티션에 실제 장치 파일이 저장되었기 때문에 원인이 되었습니다. 그들에게) 심볼릭 링크를 사용하여).
실제로 내 시스템 로그를 확인하면(journalctl -b 사용) 실제로 파티션이 로드 타이머의 ~0.01초 내에 즉시 마운트되는 것으로 나타납니다. 대신 타이머를 로드하려고 시도하지만 (로그에서) 파일이 존재하지 않는다고 불평합니다.
따라서 OP의 경우와 마찬가지로 시스템이 가동되고 실행된 후 타이머를 수동으로 시작할 수 있지만 예상대로 부팅 시 자동으로 시작되지 않습니다.
동일한 문제의 다른 변형과 마찬가지로 로그를 확인하면 진단에 도움이 될 것으로 예상됩니다.
이 페이지의 다른 답변은 서비스와 타이머를 활성화하는 단계를 유추하는 것으로 나타났습니다. 타이머가 서비스를 제어해야 할 때 일반 데몬처럼 자동으로 서비스를 시작하는 효과가 있을 수 있기 때문에 이 단계가 중복되거나 혼란스러울 수 있음을 나타내는 다른 스택 교환 답변이 어딘가에 있습니다.
답변2
systemctl enable while-test.service
systemctl enable while-test.timer
sudo를 사용하여 실행해야 할 수도 있습니다. 이렇게 하면 시작 시 서비스와 타이머가 활성화됩니다. 활성화되었는지 확인합니다.
systemctl list-timers
그러면 다음 실행 시간, 마지막 실행 시간, 마지막 실행 시간 및 활성화된 서비스와 같은 상태 정보가 표시됩니다.