LINUX.ORG.RU

Как из KCron запустить графическое приложение?

 , ,


0

1

Сделал скрипт /home/user/reminder.sh с графической напрягалкой-напоминалкой на gtkdialog. C консоли норм запускается, в KCron добавляю, нажимаю «Run now» и эффекта ноль. Как сделать, чтобы работало?

★★★★★

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

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

Дисплей укажи.

Где нужно указать?
Попробовал в самом скрипте, попробовал в Task Sheduler добавить в разделе Environment Variables DISPLAY=:0, не сработало.

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

Если это что-то даёт, запускаю из консоли kcmshell5 kcm_cron, когда нажимаю запустить задание, всегда вижу

Unknown option 'c'.
Потом не происходит ничего.

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

export DISPLAY=:0

Я попробовал в самом скрипте указать это. Ещё дополнительно в Environment variables указал в Task Sheduler. Не помогает...

fehhner ★★★★★
() автор топика
Ответ на: комментарий от zaz
% crontab -l                             :(
#No comment
DISPLAY=:0
#Напоминалка - напрягалка
* 11,12,13,14,15,16,17,18,19,20,21 * * *        /home/user/reminder.sh


# File generated by KCron the Wednesday, September 14, 2016 8:56:00 PM MSK.
fehhner ★★★★★
() автор топика
Ответ на: комментарий от fehhner

Укажите в самом скрипте, а скрипт запускайте от того пользователя у которого активна X сессия, или разрешите подключение к сессии любому пользователю (в консоли командочка xhost +)

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

значит, в самом скрипте еще каких-то переменных среды не хватает.
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/user

tcler
()
Ответ на: комментарий от zaz
user@computer ~ % env | grep DISPLAY
DISPLAY=:0

user@computer ~ % xhost +                       
access control disabled, clients can connect from any host

user@computer ~ % whereis kwrite
kwrite: /usr/bin/kwrite

user@computer ~ % whoami
user

user@computer ~ % crontab -l
DISPLAY=:0

* 11,12,13,14,15,16,17,18,19,20,21,22,23 * * *  export DISPLAY=:0 && /usr/bin/kwrite

Попробовал любое чтоугодно этим методом запустить гуёвое, результата никакого.

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

Тогда создайте скрипт и прологируйте stdout + stderr куда нибудь

#!/bin/bash
export DISPLAY=:0
/usr/bin/kwrite >& /tmp/kwrite-launch.log

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

значит, в самом скрипте еще каких-то переменных среды не хватает.
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/user

Попробовал и экспортировать всё, и просто запустить usr/bin/kwrite вместо скрипта - не помогло.

да, либо сделать экспорт переменной Xauthority

как правильно сделать? xhost + не помог, в логах пусто.

fehhner ★★★★★
() автор топика

Как из KCron запустить гафическре приложение?

Исправь название темы 😊

P.S. Кстати в таких случаях решение проблемы лучше отложить, возможно причина в усталости и невнимательности.

Wind ★★★
()
Последнее исправление: Wind (всего исправлений: 1)
Ответ на: комментарий от zaz

он не запускается. права на выполнение дал.

% echo 0 > /tmp/kwrite-launch.log

% crontab -l                
DISPLAY=:0
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/user

* * * * * /home/user/test.sh
* * * * * cd /home/user && ./test.sh

% cat /tmp/kwrite-launch.log
0
Лог должен был стать пустым при успешном запуске.

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

Похоже у вас крон не запускает ваши таски. Возможно нужно просто службу перестартовать, возможно вам не разрешено иметь свой crontab в спуле ...

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

Похоже у вас крон не запускает ваши таски. Возможно нужно просто службу перестартовать

Истинно так, подумал об этом одновременно, когда просто echo test > /tmp/test оставил. По какой-то причине, он был отключен. Теперь всё работает, ура!

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