我一直在尝试编写一个非常简单的 shell 脚本来启动 redshift,如果它还没有运行的话。
#!/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
是的,脚本的名称是 reshift。
/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
我被告知它正在运行并启用。问题是,只要计时器到达标记,什么都不会执行。知道我做错了什么吗?