2016-12-14 14 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

関連する問題