LINUX.ORG.RU

Как правильно составить задачу с гуи для crontab'а?

 , ,


0

1

Три часа уже пытаюсь заставить работать zenity в кроне, но ничего не получается, прочитал кучу статей по этому поводу, с кроном раньше не работал, но мне кажется что задачу составил правильно, вот что у меня получилось:

* * * * * DISPLAY=0:0 /usr/bin/zenity --display=:0 --info --title="Мегасообщение" --text="test passed.." >>/home/superguest/desktop/RRRRR.txt

там много всяких ссылок на display это потому что так везде советуют, и еще добавил в /bin/bash/bashrc строчку «xhost + >/dev/null» понятия не имею зачем, гдето прочитал, да впрочем без нее тоже не работает... Да файл RRRR пустой создается на рабочем столе, видимо задание выполняется и делает это без ошибок, вот только зенити ничего не рисует на экране. Что я делаю не так?

ЗЫ пользователь в группах: cron и crontab (если это важно)

Еще если не трудно подскажите как заменить этот божественный VIM на обычный приземленный редактор вроде nano, в котором можно изменять и сохранять текст без лишних телодвижений: 1 нажатие - 1 действие? этот crontab -e он постоянно запускает vim, в котором невозможно нормально работать, он меня бесит и я постоянно нервничаю...



Последнее исправление: cetjs2 (всего исправлений: 3)

Чем нервничать, лучше почитать crontab(1):

       The -e option is used to edit the current crontab using the  editor  speci‐
       fied  by  the  VISUAL or EDITOR environment variables.  After you exit from
       the editor, the modified crontab will be installed automatically.
Очень успокаивает.

ABW ★★★★★
()
Ответ на: комментарий от ABW

Чем нервничать, лучше почитать crontab(1):

типа в переменных VISUAL и EDITOR задается? ок, спс, поменяю

superguest
() автор топика
Ответ на: комментарий от sdio

DISPLAY=:0.0

да, так и задаю, это уже здесь ошибся когда набирал вопрос; и при таком раскладе не работает zenity

superguest
() автор топика

Забыли переменную XAUTHORITY указать? Замените добавьте 2>&1 в конец строки, чтобы видеть в файле ещё и ошибки, которые выдаёт zenity.

AITap ★★★★★
()
Ответ на: комментарий от AITap

Забыли переменную XAUTHORITY указать?

Не, просто не знал, что она нужна, сделал с ней

*/5 * * * * XAUTHORITY=/home/superguest/.Xauthority /usr/bin/zenity --display=:0 --info --title="Мегасообщение" --text="test passed.."  2>&1>>/home/superguest/desktop/RRRRR

все равно файл пустой и не выводится окно, пробовал тоже самое в убунте - там все ровно, достаточно ключа --display=:0 к зенити, работает как часы) Думаю, может быть поменять vixie на другой крон, может в нем все дело?!

superguest
() автор топика

и еще добавил в /bin/bash/bashrc строчку «xhost +

херня. просто открой х-терминал и дай команду

xhost +LOCAL:

sdio ★★★★★
()
Ответ на: комментарий от superguest

А у меня выводит :-)
Ты где-то явно косячишь.

sdio ★★★★★
()

А твой дисплей точно :0.0 ??? раз ошибок в файле нет, значит окно рисуется (кстати посмотри ps -ef | grep zenity) куда-то.

sdio ★★★★★
()
Ответ на: комментарий от sdio

Да дисплей :0 может быть с zenity чето не так, вот ток щас забил новое задание:

* * * * * DISPLAY=:0 notify-send "Я тут" "Меня видно?"
и это окошко стабильно вылетает раз в минуту, т.е. нотифи работает; а zenity - нет, хотя этот же пример из tty запускается нормально, не хочет работать только в кроне.

а че дает -ef ? вот, короче:

$ ps -ef | grep zenity
superguest    6019  6003  0 15:36 pts/1    00:00:00 grep --colour=auto zenity

superguest
() автор топика
Ответ на: комментарий от superguest

notify-send

и это окошко стабильно вылетает раз в минуту, т.е. нотифи работает

Очень странно. Уже наверно года три как notify-send нуждается в $DBUS_SESSION_BUS_ADDRESS, то есть просто так из крона он не работает.

baverman ★★★
()
Ответ на: комментарий от baverman

У меня крон такой

PATH=/home/bobrov/bin:/bin:/usr/bin
DISPLAY=:0

* * * * * ...

Все работает, хотя может потому что иксы пускаются с -nolisten tcp.

baverman ★★★
()
Ответ на: комментарий от sdio

Где у него ошибки в логах (почему их нет)?

Это по словам ТС их нет. Чудес же не бывает.

baverman ★★★
()
Ответ на: комментарий от baverman

Работает нормально в tty, я же говорю в tty работает. И в таком варианте и в варианте с ключом zenity --display=:0 ...

DISPLAY=:0 zenity --info --title "LaLa" --text "asdf"
zenity --display=:0 --info --title "LaLa" --text "asdf"
zenity --info --title "LaLa" --text "asdf"

первые два работают, последний выдает ошибку gtk-warning: cannot open display

superguest
() автор топика
Ответ на: комментарий от superguest

Короче, я туплю :) исправил сейчас это:

*/5 * * * * XAUTHORITY=/home/superguest/.Xauthority /usr/bin/zenity --display=:0 --info --title="Мегасообщение" --text="test passed.."  2>&1>>/home/superguest/desktop/RRRRR

На это:

* * * * * XAUTHORITY=/home/superguest/.Xauthority /usr/bin/zenity --display=:0 --info --title="Мегасообщение" --text="test passed.."  >>/home/superguest/desktop/RRRRR 2>&1

Теперь видно ошибки:

$ cat desktop/RRRR 
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.

superguest
() автор топика
Ответ на: комментарий от superguest

разобрался в чем дело, при вводе в текстовое значение текста на русском zenity вылетает с ошибкой «This option is not available. Please see --help for all possible usages.» т.е.

* * * * * DISPLAY=:0 zenity --info --title="I'm was" --text="made in England?"
в таком варианте задание срабатывает
* * * * * DISPLAY=:0 zenity --info --title="I'm was" --text="фыва"
а здесь будет ошибка, осталось понять с чем это связано.

superguest
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.