использование или уведомляет - отправляют или zenity в Кроне

Я пытаюсь заставить крон обеспечивать экранное предупреждение, когда он определяет конкретную ситуацию. Я знаю, что сценарий выполняется каждую минуту, но он не отобразится на экране.

выполняемый сценарий:

DISPLAY=:0.0 /usr/bin/notify-send -t 1000 Test "This is a test"

Рабочий Gnome от распределения Mandriva.

Какие-либо идеи?

5
задан 30.03.2010, 16:23

2 ответа

crontab этого Вашего пользователя, не crontab корня?

Я предложил бы, чтобы, по крайней мере, для отладки, Вы создали сценарий, как John T описывает:

* * * * * /path/to/script.sh

Вот то, на что мог бы быть похожим сценарий:

#!/bin/bash
{
    echo "trying to notify at $(date)"
    DISPLAY=:0.0 /usr/bin/notify-send -t 1000 Test "This is a test"
    echo "finished notify at $(date)"
} > /path/to/your-notify-debug.log 2>&1

Обратите внимание, что существует нет ":" перед ДИСПЛЕЕМ, поскольку Вы, кажется, имеете в своем вопросе. Обязательно сделайте этот исполняемый файл сценария (chmod +x /path/to/script.sh) и позвольте крону попытаться выполнить его несколько раз. Затем исследуйте то, что было записано в файл журнала.

5
ответ дан 07.12.2019, 17:20

Необходимо смочь соединиться с шиной сеанса пользователя DBUS. Это должно быть шиной сессии не системная шина. Можно найти это путем выполнения a

набор | grep DBUS_SESSION_BUS_ADDRESS

затем в Вашем сценарии Вы должны иметь

экспортируйте DBUS_SESSION_BUS_ADDRESS = {независимо от того, что это}

затем сделайте Ваш уведомлять - отправляют

Так как шина сессии изменяется каждый раз, когда Вы входите в систему, Вы могли бы хотеть добавить что-то к своим сценариям входа в систему для записи DBUS_SESSION_BUS_ADDRESS в файл, таким образом, сценарий может считать это в и экспорт это.

3
ответ дан 07.12.2019, 17:20

Теги

Похожие вопросы