사용자 systemd.timer를 자동으로 시작하는 방법은 무엇입니까?

사용자 systemd.timer를 자동으로 시작하는 방법은 무엇입니까?

여러 사용자 systemd.timer를 설정했습니다.

자동으로 시작되게 하려면 어떻게 해야 합니까? (시스템 시작 시 또는 사용자가 X 세션에 로그인한 후)

시스템을 재부팅한 후( systemctl --user enable재부팅 전에 실행하더라도, 즉 도움이 되지 않음) 다음을 실행하지 않았습니다.

~$ systemctl --user enable {rsync_backup1,rsync_another_backup}.timer 
~$ systemctl --user list-timers --all
0 timers listed.

여기서는 다음 명령을 사용하여 시작해야 합니다.

~$ systemctl --user start {rsync_backup1,rsync_another_backup}.timer           
~$ systemctl --user list-timers --all
NEXT                          LEFT         LAST                          PASSED UNIT                          
Sun 2016-07-31 13:26:45 CEST  1h 16min ago Sun 2016-07-31 14:43:32 CEST  2s ago rsync_backup1
Sun 2016-07-31 13:26:45 CEST  1h 16min ago Sun 2016-07-31 14:43:32 CEST  2s ago rsync_another_backup

2 timers listed.
~$ 

다음은 현재 타이머가 구성되는 방법의 예입니다.

$HOME/.config/systemd/user/rsync_backup1.service:

[Unit]
Description=rsync --delete /home/USER data to NASUSER@NAS

[Service]
Type=simple
ExecStart=/home/USER/scripts/rsync_backup1.sh

$HOME/.config/systemd/user/rsync_backup1.timer:

[Unit]
Description=Runs every 12 minutes rsync --delete /home/USER data to NASUSER@NAS

[Timer]
OnBootSec=12min
AccuracySec=10min
OnCalendar=*:0/12
Unit=rsync_backup1.service

[Install]
WantedBy=multi-user.target

PS 예, 타이머를 시작하는 명령을 창 관리자 "시작" 스크립트 .bashrc에 넣을 수 있다는 것을 알고 있습니다. .xinit내가 묻는 것은 시스템이 재부팅(/login)할 때마다 실행되도록 정의하는 "깨끗한" 방법이 있습니까?

답변1

첫 번째, 다른 사람들이 말했듯이, 대신에 이를 설치하는 WantedBy=default.target것이 WantdBy=multi-user.target사용자 단위를 활성화하는 표준 방법입니다.

부팅 시 시작되도록 하려면바라보다이 ArchWiki 항목은 부팅 시 시스템 사용자 단위를 시작하는 것에 관한 것입니다.로그인에 묶이는 것보다.

간단히 말해서:

# loginctl enable-linger username

Unit=rsync_backup1.service(타이머와 서비스 파일의 기본 이름이 동일하므로 이는 중복됩니다 . )

관련 정보