如何从cron运行的脚本打开xterm?

我有cronjob运行这个脚本每20分钟,但我不明白如何使xterm打开它..

#!/bin/bash xterm -hold -e "echo Time to relax" play -q /home/username/music/relax.mp3 trim 0 01:20 sleep 120 exit 0 

并在crontab -e

 */20 * * * * /home/username/Desktop/alarm.sh 

脚本运行良好,但我不能让xterm打开,我在这里做错了什么? 当我通过terminal运行脚本时,例如:sh /home/username/Desktop/alarm.shterminal打开就好,歌曲也播放。

当脚本没有从X会话中启动时(这是cron脚本的情况),您需要传递DISPLAY环境变量:

 DISPLAY=:0 xterm -hold -e "echo Time to relax" 

如果你正在运行一个标准的桌面系统:0应该作为值,否则你需要为你的系统传递正确的值。