LINUX.ORG.RU

В чём заковырка?


0

0

Написал простенький скрипт на Pythone, напоминалку, которая с помощью pynotify выводит определённый текст. Если запустить скриптик из консоли, всё отлично отображается. Засунул в cron, прописал в crontabe время выполнения каждые полчаса. Но каждые пол-часа ни хрена не происходит. В sysloge написано, что cron скрипт запускает, но на экран ничего не вылезает. В логах сообщений об ошибках нет, т.е скрипт не вываливается по исключению. Такая же хрень с at. Где я облажался?


Ответ на: комментарий от koirn

да ну хоть вот так -
посмотри что выводит echo $DISPLAY, и потом в at запускай вот так:

export DISPLAY=то-что-вывелось && строка запуска твоего скрипта

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

Я думал, он просто его вызовет, а там они сами разберутся

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

а крон, конечно же, для того же юзера, что и в иксах залогинен? или для рутового? ;)

aol ★★★★★
()

Программа не может подключиться к икссерверу.

Вот так можно разрешить всем юзерам в системе подключаться к текущему запущенному икс секрверу :

xhost +local:

xcreatepixmap
()
Ответ на: комментарий от aol

Для того же юзера, что и в иксах залогинен.
С помощью предыдущих советов удалось справиться через костыль - скрипт .sh запускает баш, затем экспортирует DISPLAY и потом вызывает питоновский скрипт, так работает.
Но это как-то не кошерно выглядит

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

Иногда требуется: «xhost +LOCAL:LOCAL»

Проверить можно так: «xx xx * * * export DISPLAY=:0.0; xterm &> /tmp/log» (дописав строчку в крон)

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

это нормально. А вот это действительно некошерно: xhost +local, но на десктопе сойдет

FollowTheRabbit
()
Ответ на: комментарий от koirn

> С помощью предыдущих советов удалось справиться через костыль - скрипт .sh запускает баш, затем экспортирует DISPLAY и потом вызывает питоновский скрипт, так работает.

строчки в crontab [обычно] обрабатываются шеллом, так что можно экспортировать перед вызовом скрипта.

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

переменные можно объявить прямо в кронтабе.

например,

HOME=/home/pupkin
MAIL=basil.pupkin@localhost
DISPLAY=:0

15 14 1 * * /path/to/my_coolTask.py

кстате, это всё в crontab(5) написано белым по черному! ;)

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

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

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