60분마다 알림을 보내는 서비스를 만들려고 합니다. 이를 위해 bash 스크립트를 만들었습니다. 60 분마다 실행되지만 알 수 없는 이유로 작동하지 않는 hourly.sh
것을 사용하여 실행할 수 있기 때문에 작동한다는 것을 알고 있습니다. 일하지 마세요. 나는 다음과 같이 시작했습니다 . 이것은 내 코드입니다../hourly.sh
timer
systemctl start hourlynotif.timer
hourlynotif.service
:
[Unit]
Description=Hourly notifier with notify-send
[Service]
Type=oneshot
ExecStart=/etc/systemd/system/hourly.sh
[Install]
WantedBy=multi-user.target
참고 사항: [Install]
타이머 없이 서비스로 실행하려고 라인을 추가했습니다(타이머로 실행 중이라면 [Install] 태그가 필요하지 않기 때문입니다). 단지 테스트하기 위한 것이었지만 아무것도 변경되지 않았습니다.
그리고 hourlynotif.timer
:
[Unit]
Description=Hourly notifier with notify-send
[Timer]
#OnCalendar=hourly
OnActiveSec=1
[Install]
WantedBy=timers.target
systemctl list-timers --all
내 타이머가 "통과"로 나열되어 있고 이것이 출력이므로 타이머가 예상대로 작동하고 있다는 것을 알고 있습니다 . (테스트를 시작한 후 1초 동안 실행되도록 편집했기 때문에 매시간이 아님)
NEXT LEFT LAST PASSED UNIT ACTIVATES
n/a n/a Thu 2017-08-31 05:21:54 CST 6s ago hourlynotif.timer hourlynotif.service
어떤 아이디어가 있나요?
편집하다:Bash 스크립트는 표시되는 KDE 알림 위젯에 의존하는 알림 전송에 의존합니다. 스크립트를 sudo하면 알림이 실행되지 않으므로 로그인한 사용자로 스크립트를 실행해야 할 것 같습니다.
답변1
문제는 .bash를 사용하여 실행하지 않고 systemctl --user start <unit>
단지 systemctl start <unit>
.bash를 사용하고 있다는 것입니다. 스크립트는 사용자별 KDE 항목에 의존하므로 해당 스크립트를 실행하면 작동하지 않습니다. sudo
이것이 서비스의 기본 모드입니다.