2016-12-14 15 views
0

레드 쉬프트를 시작하는 매우 간단한 쉘 스크립트를 아직 작성하지 않은 경우 함께 쓰려고했습니다.Systemd 타이머가 쉘 스크립트를 실행하지 않습니다.

#!/bin/sh 
if ps -ef | grep -v grep | grep redshift-gtk; then 
    exit 0 
else 
    /usr/bin/redshift-gtk & 
    exit 0 
fi 

내가 스크립트를 여러 번 실행 시도하고 나는 그것이 작동 확신합니다.

나는 Manjaro i3 btw를 실행 중입니다. 나는 다음은/usr/lib 디렉토리/systemd/시스템의 서비스와 타이머/생성 시도했다 :

/usr/lib/systemd/system/redshift.service을

[Unit] 
Description=Runs redshift 

[Service] 
Type=simple 
ExecStart=/bin/bash /home/velo/reshift.sh 

[Install] 
WantedBy=multi-user.target 

예, 스크립트 이름이 다시 이동합니다.

/usr/lib/systemd/system/redshift.timer 타이머는 어떤 관련 분이 변경되었습니다

[Unit] 
Description=Runs redshift at given intervals 
Requires=redshift.service 

[Timer] 
OnCalendar=*-*-* *:45:00 
Persistent=true 
Unit=redshift.service 

[Install] 
WantedBy=multi-user.target 

그것을 트리거에 의해 가까웠다. OnCalender가 변경 될 때마다 나는 다음을 수행했습니다.

>systemctl daemon-restart 
>systemctl restart redshift.timer 
>systemctl status redshift.timer 

어디에서 실행되고 있고 활성화되어 있다고 들었습니다. 문제는 타이머가 마크에 도달 할 때마다 아무 것도 실행되지 않는다는 것입니다. 내가 뭘 잘못하고 있는거야?

답변

0

systemctl list-timers --all을 사용하여 타이머의 상태를 확인하십시오.

systemctl start redshift.timer을 사용하여 타이머를 시작하십시오.

또한 맞춤 스크립트를 /etc/systemd/system 아래에 두어야합니다. /usr/lib 위치는 패키지에 의해 설치된 스크립트 용입니다.

도 참조하십시오. Run script every 30 minutes with systemd