所以我的最终目标是有一个关机脚本,在终端关机前提示我。 / sbin / shutdown的正常消息参数似乎不会强制终端出现,我希望每次都弹出一个终端。
所以,我一直试图让终端出现cronjobs,但没有成功。我搜索了我在这个网站和其他网站上发现的每一篇文章,尝试了很多不同的东西,但我最终还是卡住了。
所以,这是我的脚本。它们都非常简单,因为在我尝试实际做更复杂的事情之前,我只是想让终端显示器正常工作。
test.sh:此脚本在被cronjob调用后尝试打开gnome-terminal以运行第二个脚本。
#!/bin/bash
gnome-terminal -e /home/craig/Documents/Scripts/test2.sh
test2.sh:这只是一个输出一些文本并等待用户响应的简单脚本。
#!/bin/bash
echo "Submit your response:"
read -t 10 -p "";
echo "Your reponse was: $REPLY"
read -t 10;
如果我直接从终端运行它们,这两个脚本都可以工作。例如,test.sh打开另一个终端窗口并运行test2.sh.但我不能让他们在cron工作。
我已经尝试了我的本地cron(crontab -e)和root cron(sudo crontab -e),但没有成功。我已经尝试过设置DISPLAY变量,弄乱了XAUTHORITY,我看过引用的任何东西。我永远无法让它发挥作用。
以下是我在crontab中的一些非工作cronjobs:
52 18 * * * env DISPLAY=:0.0 | xhost +local | /usr/bin/gnome-terminal -e /home/craig/Documents/Scripts/test2.sh
56 18 * * * /usr/bin/gnome-terminal --display=:0.0 -e /home/craig/Documents/Scripts/test2.sh
24 23 * * * export DISPLAY=:0 && /home/craig/Documents/Scripts/test.sh
我知道xhost释放了终端,但我得到的印象是不太安全。此外,我不知道它是否进行了永久性更改,我希望这是非常灵活的(即,我不想每天运行xhost以便它运行。我已经尝试从运行xhost在我的剧本中,没有帮助)。
无论如何,大多数时候我收到“No protocol specified”错误消息,说“无法初始化服务器:无法连接:连接被拒绝 无法解析参数:无法打开显示:“根据我设置DISPLAY变量的方式,最后一部分经常显示”:0“。
我现在完全迷失了。请帮忙。感谢。