I am running Ubuntu 11.10 (Unity interface) and I created a Bash script that uses ‘gnome-open’ to open a series of web pages I use every morning. When I manually execute the script in the Terminal, the bash script works just fine. Here’s a sample of the script (it’s all the same so I’ve shortened it):
#!/bin/bash
gnome-open 'https://docs.google.com';
gnome-open 'https://mail.google.com';
Since it seemed to be working well, I added a job to my crontab (mine, not root’s) to execute every weekday at a specific time.
Here’s the crontab entry:
30 10 * * 1,2,3,4,5 ~/bin/webcheck.sh
The problem is this error gets returned for every single ‘gnome-open’ command in the bash script:
GConf-WARNING **: Client failed to connect to the D-BUS daemon:
Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
GConf Error: No D-BUS daemon running
Error: no display specified
I did some searching to try and figure this out. The first thing I tried was relaunching the daemon using SIGHUP:
killall -s SIGHUP gconfd-2
That didn’t work so I tried launching the dbus-daemon using this code from the manpage for dbus-launch:
## 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
But that didn’t do anything.
I tried adding simply ‘dbus-launch’ at the top of my bash script and that didn’t work either.
I also tried editing the crontab to include the path to Bash, because I saw that suggestion on another thread but that didn’t work.
Any ideas on how I can get this up and running?
Here is how the problem was solved. It turns out the issue was primarily caused by Bash not having access to an X window session (or at least that’s how I understood it). So my problem was solved by editing my crontab like so:
The “export DISPLAY=:0” statement told cron which display to use. I found the answer on this archived Ubuntu forum after searching for “no display specified” or something like that:
http://ubuntuforums.org/archive/index.php/t-105250.html
So now, whenever I’m logged in, exactly at 10:30 my system will automatically launch a series of webpages that I need to look at every day. Saves me having to go through the arduous process of typing in my three-letter alias every time 🙂