Я использую 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
Проблема в том, что эта ошибка возвращается для каждой отдельной команды 'gnome-open' в скрипте bash:
GConf-WARNING **: клиенту не удалось подключиться к демону D-BUS:
Невозможно запустить демон dbus без $ DISPLAY для X11
Ошибка GConf: демон D-BUS не работает
Ошибка: дисплей не указан
Я попытался выяснить это. Первым делом я попытался перезапустить демон, используя SIGHUP:
killall -s SIGHUP gconfd-2
Это не сработало, поэтому я попытался запустить демон dbus, используя этот код на странице руководства для запуска dbus:
## 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
Но это ничего не сделало.
Я попытался добавить просто 'dbus-launch' в начало моего bash-скрипта, но это тоже не сработало.
Я также попытался отредактировать crontab, чтобы включить путь к Bash, потому что я видел это предложение в другом потоке, но это не сработало.
Любые идеи о том, как я могу получить это и работает?