cron 无法启动 workrave

cron 无法启动 workrave

我时不时会关闭 workrave 程序。例如,当我正在看电影时。然后我忘记重新启动它。

所以,我想反复重启它。不知何故,cron不起作用。以下给出总结:

Ubuntu 仿生 (18.04)

我是普通用户(不是 root)

$ xhost
access control enabled, only authorized clients can connect
INET:localhost
INET6:localhost
SI:localuser:USERNAME

$ echo $DISPLAY
:0

$ crontab -l
* * * * * export DISPLAY=:0 && /usr/bin/workrave

当我打开 tilix 终端并输入时/usr/bin/workrave,程序启动正常。

命令

* * * * * env DISPLAY=:0 /usr/bin/workrave

也不起作用。

答案1

假设您的用户名是tiger- 只需将名称下方的所有位置替换为您的真实用户名。在用户的主目录中创建 bash 脚本:

touch /home/tiger/workrave.sh

使创建的脚本可执行:

chmod +x /home/tiger/workrave.sh

在文本编辑器中打开脚本,例如将其设为 nano:

nano /home/tiger/workrave.sh

将其内容插入脚本(不要忘记替换tiger):

#!/bin/bash
ifrun=$(pgrep -cxu tiger -f /usr/bin/workrave)
if [[ $ifrun == 0 ]] ;
then
    DISPLAY=:0 /usr/bin/workrave &
fi

保存更改并关闭文本编辑器。打开 crontab 为tiger

crontab -e

在 crontab 的末尾添加以下行(不要忘记替换tiger):

*/1 * * * * /home/tiger/workrave.sh

保存并关闭 crontab。检查一切是否正常(cron 将每分钟运行一次脚本)。设置脚本执行的时间。就这样。

评论。仅当其他实例未运行时,该脚本才会执行 workrave。

更新

用于测试目的的脚本(替换tiger):

#!/bin/bash
DISPLAY=:0 /usr/bin/workrave 2>> /home/tiger/workrave-errors.log

相关内容