2016-12-14 114 views
0

我一直在試圖放在一起,一個非常簡單的shell腳本,如果它尚未運行,它將啓動紅移。Systemd Timer不執行shell腳本

#!/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