![每分钟向终端输出“hello world”的Cron作业](https://linux22.com/image/1019971/%E6%AF%8F%E5%88%86%E9%92%9F%E5%90%91%E7%BB%88%E7%AB%AF%E8%BE%93%E5%87%BA%E2%80%9Chello%20world%E2%80%9D%E7%9A%84Cron%E4%BD%9C%E4%B8%9A.png)
这是我第一次使用 cron 作业,我不知道哪里出了问题。我读了关于这个问题的三个最多人回答的问题,但它仍然不起作用。
sayhello.sh
,它已通过以下方式执行chmod -x
,位于/home/user
#!/bin/sh
echo "HELLO WORLD"
在crontab -e
* * * * * DISPLAY=0.0 /home/user/sayhello.sh
答案1
单独的 shell 无法与用户的桌面交互 - 它需要连接到某种终端设备。例如:
* * * * * DISPLAY=:0 gnome-terminal -- /home/user/sayhello.sh
或者
* * * * * DISPLAY=:0 xterm -e /home/user/sayhello.sh
您可能需要安排终端在命令退出后保持打开状态 - 通过其首选项,或者通过向read a
脚本底部添加命令(以便 shell 阻止等待用户输入)。
答案2
您尝试过 sudo chmod +x sayhello.sh 吗?
我注意到您说了 -x,也许这就是问题所在。-x 删除执行权限,而 +x 添加执行权限。
答案3
设置所有星号* * * * *
会告诉 crontab 每个月每周每天每分钟运行该命令。您必须指定要运行脚本的时间:
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/