Я пытался собрать очень простой сценарий оболочки, который запускает красное смещение, если он еще не запущен.
#!/bin/sh
if ps -ef | grep -v grep | grep redshift-gtk; then
exit 0
else
/usr/bin/redshift-gtk &
exit 0
fi
Я пробовал запускать скрипт несколько раз, и я уверен, что он работает.
Я использую Manjaro i3, кстати. Затем я попытался создать службу и таймер в /usr/lib/systemd/system/:
/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
Где мне говорят, что он запущен и включен. Проблема в том, что ничего не выполняется всякий раз, когда таймер достигает отметки. Любая идея, что я делаю неправильно?