【发布时间】:2012-01-03 09:22:22
【问题描述】:
我正在运行 Ubuntu 11.10(Unity 界面)并创建了一个 Bash 脚本,该脚本使用“gnome-open”打开我每天早上使用的一系列网页。当我在终端中手动执行脚本时,bash 脚本工作得很好。这是脚本的一个示例(都是一样的,所以我把它缩短了):
#!/bin/bash
gnome-open 'https://docs.google.com';
gnome-open 'https://mail.google.com';
由于它似乎运行良好,我在我的 crontab(我的,而不是 root 的)中添加了一个作业,以便在每个工作日的特定时间执行。
这是 crontab 条目:
30 10 * * 1,2,3,4,5 ~/bin/webcheck.sh
问题是 bash 脚本中的每个“gnome-open”命令都会返回此错误:
GConf-WARNING **:客户端无法连接到 D-BUS 守护进程: 无法在没有 $DISPLAY for X11 的情况下自动启动 dbus-daemon GConf 错误:没有运行 D-BUS 守护程序 错误:未指定显示
我进行了一些搜索以试图解决这个问题。我尝试的第一件事是使用 SIGHUP 重新启动守护进程:
killall -s SIGHUP gconfd-2
这不起作用,所以我尝试使用 dbus-launch 手册页中的以下代码启动 dbus-daemon:
## test for an existing bus daemon, just to be safe
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
## if not found, launch a new one
eval `dbus-launch --sh-syntax --exit-with-session`
echo "D-Bus per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS"
fi
但这并没有做任何事情。
我尝试在我的 bash 脚本顶部简单地添加“dbus-launch”,但这也不起作用。
我还尝试编辑 crontab 以包含 Bash 的路径,因为我在另一个线程上看到了该建议,但没有奏效。
关于如何启动和运行它的任何想法?
【问题讨论】:
-
记录一下:使用保存会话的浏览器(Chrome、Opera、Firefox 都支持它!),最好使用
pinned标签到(Chrome 和 Firefox;Opera 有堆叠标签 i> 也是。赢了!)。这样,您就不必玩这些技巧来打开浏览器选项卡:) -
就个人而言,我讨厌固定标签。但是感谢您在下面的回答,我会玩一下,看看是否可以将其合并到我的脚本中。