답변1
~/.config/systemd/user/send-mail.service
먼저 다음 내용으로 systemd 서비스 파일을 만듭니다.
[Unit]
Description=Sends mail that reminds me of an anniversary
[Service]
; The l flag for bash creates a login shell so Mutt can access our environment variables which contain configuration
ExecStart=/bin/bash -lc "echo \"$(whoami) created this message on $(date) to remind you about...\" | mutt -s \"Don't forget...\" [email protected]"
다음을 실행하여 이메일 전송이 작동하는지 테스트할 수 있습니다.
systemctl --user daemon-reload && systemctl --user start send-mail.service
에 이메일을 보내야 합니다 [email protected]
.
~/.config/systemd/user/send-mail.timer
그런 다음 다음 내용으로 타이머를 만듭니다.
[Unit]
Description=Timer for writing mail to myself to remind me of anniversaries
[Timer]
; Trigger the service yearly on September 5th
OnCalendar=*-09-05
; Send a mail immediately when the date has passed while the machine was shut down
Persistent=true
AccuracySec=1us
; Set the timer to every ten seconds (for testing)
; OnCalendar=*:*:0/10
[Install]
WantedBy=timers.target
타이머의 내용은 서비스를 참조하지 않습니다. 서비스와 타이머의 .service
이름이 접미사 sum 을 제외하고 동일하기 때문에 여전히 작동합니다 .timer
. 타이머와 서비스의 이름을 다르게 지정하려면 Unit=
타이머 [Timer]
섹션에서 해당 이름을 사용하세요.
부팅 시 타이머가 시작되도록 설정
systemctl --user daemon-reload && systemctl --user enable send-mail.timer
이제 타이머를 볼 수 있습니다 systemctl --user list-timers --all
.
타이머를 시작하려면 다음을 수행하십시오.
systemctl --user start send-mail.timer
systemd가 날짜를 어떻게 해석하는지 확인하려면 systemd-analyze calendar *:0/2
또는 를 사용할 수 있습니다 systemd-analyze calendar quarterly
. 또한 확인해 보세요.수동systemd의 시간 형식 정보.