我有一个cron作业,每个周末调用一个脚本运行rsync并将我的文件同步到外部驱动器。我在Linux Mint 16或17上可以顺利运行。我需要显示一个终端窗口以向用户显示状态,并要求他们打开驱动器
然后我安装了Mint 19.1,脚本停止执行。如果我在不显示UI的情况下运行脚本,则可以正常运行脚本,但是无法在可见的终端中运行该脚本。
我在crontab中使用此命令 我要运行的脚本是test2.sh,第一个运行正常
MAILTO=""
05 00 * * * env DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus /mnt/Files/Software/Software\ Customizations/Linux/Scripts/rsync_backup_daily.sh
*/1 * * * * export DISPLAY=:0 && export XAUTHORITY=/home/vortex/.Xauthority && gnome-terminal -e "/mnt/Files/Software/Software\ Customizations/Linux/Scripts/test2.sh"
运行systemctl status cron可以给我
Jun 22 00:41:01 MK-PC CRON[5592]: pam_unix(cron:session): session opened for user sam by (uid=0)
Jun 22 00:41:01 MK-PC CRON[5593]: (sam) CMD (export DISPLAY=:0 && export XAUTHORITY=/home/sam/.Xauthority && gnome-terminal -e "/mnt/Files/Software/Software\ Customizations/Linux/Scripts/test2.sh")
Jun 22 00:41:02 MK-PC dbus-daemon[5603]: [session uid=1000 pid=5601] AppArmor D-Bus mediation is enabled
Jun 22 00:41:05 MK-PC CRON[5592]: pam_unix(cron:session): session closed for user sam
答案 0 :(得分:0)
crontab作业作为根without terminal attached运行。
但是您可以在终端中检索更新(肮脏的方式,但是可以工作)。
*/1 * * * * /mnt/Files/Software/Software\ Customizations/Linux/Scripts/test2.sh > /tmp/myscript.output
然后在终端机上
gnome-terminal -e 'watch -n 60 cat /tmp/myscript.output'
希望获得帮助
编辑:
* * * * * root export DISPLAY=:0.0 && xed /home/vi/test
您还需要允许连接到当前的X Server:
xhost local:root
问题是最后一行不是永久性的,下次重新启动时需要再次输入。