Отображение приложения, запущенного через пользовательское задание cron

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
madesta
Сообщения: 2019
Зарегистрирован: 11 июн 2017, 21:47
Решено: 30
Откуда: BY
Благодарил (а): 79 раз
Поблагодарили: 434 раза
Контактная информация:

Отображение приложения, запущенного через пользовательское задание cron

#1

10 мар 2018, 22:20

Linux Mint xfce 18

Была идея реализации ежедневной задачи:
1. Запуск приложения Dropbox на синхронизацию (получение/отправка) файлов в папках совместного доступа.
2. Команда паузы на 20 минут, в течение которых процесс Dropbox выполняет свою задачу.
3. Остановка Dropbox.

Было создан исполняемый файл daily-dropbox пользовательского задания cron:

Код: Выделить всё

#!/bin/bash
dropbox start
sleep 15
rm /home/user/.config/autostart/dropbox.desktop
#команда rm удаляет автоматически создаваемый автозапуск Dropbox при старте системы
sleep 1200
dropbox stop
Задание cron с именем user сохраняется в /var/spool/cron/crontabs и успешно редактируется через crontab -e
Задание отрабатывается в соответствии с указанным расписанием и процессы dropbox, sleep, а также daily-dropbox наблюдаются через диспетчер задач.
В процессе отработки задания файлы в Dropbox синхронизируются, что проверено по факту появления новых и удаления старых файлов, загруженных/удалённых через другую учётку Dropbox на другом компьютере.
После отработки команды dropbox stop все указанные процессы из диспетчера задач исчеают.

Вопрос: отсутствие отображения значка Dropbox на панели является следствием запуска Dropbox через cron или в файле задания чего-то не хватает? При запуске команды dropbox start (dropbox start -i) через терминал или скрипт sh значок Dropbox отображается.

Решение madesta » 12 мар 2018, 13:12
Выражаю свою признательность откликнувшимся.
Вероятно, при формулировании своего вопроса мне следовало бы уточнить, что запуск пользовательского задания cron предусматривается выполнять в течение активного сеанса работы пользователя в системе.
Конструкция export DISPLAY=:0 && команда сработала и была опробована на последовательностях команд с использованием уведомлений zenity, а также запуске приложений GUI, например firefox "http://news.mail.ru"

Перейти к ответу ➙

Аватара пользователя

slant
Сообщения: 4506
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1993 раза
Контактная информация:

Отображение приложения, запущенного через пользовательское задание cron

#2

10 мар 2018, 22:34

Программа через cron запускается вне окружения рабочего стола, она не может просто так с ним взаимодействовать. И организовать это взаимодействие хоть в принципе и возможно, но довольно сложно - чтобы без глюков. Если так нужен значок (и взаимодействие с ним) - проще просто засунуть ваш скрипт в автозапуск пользователя в DE. Или просто позволить дропбоксу его родной автозапуск, а вашим скриптом тоже из автозапуска в DE убивать его через заданное время.

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

Отображение приложения, запущенного через пользовательское задание cron

#3

11 мар 2018, 11:08

Вкратце - приложуху надо отправить в соответсвующую X-сессию
export DISPLAY=:0 && /path/to/daily-dropbox
Изображение
   
Изображение

Аватара пользователя

slant
Сообщения: 4506
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1993 раза
Контактная информация:

Отображение приложения, запущенного через пользовательское задание cron

#4

11 мар 2018, 11:25

... и если повезет - заработает. :) Зато может перестать запускаться, в моменты, когда юзер не залогинен.
Некоторые приложения таким образом надо через dbus-launch запускать, некоторые еще через пару трюков. И в случае отсутствия активной сессии пользователя в момент запуска они тоже себя по разному ведут... В общем - то еще развлечение.

Аватара пользователя

Автор темы
madesta
Сообщения: 2019
Зарегистрирован: 11 июн 2017, 21:47
Решено: 30
Откуда: BY
Благодарил (а): 79 раз
Поблагодарили: 434 раза
Контактная информация:

Отображение приложения, запущенного через пользовательское задание cron

#5

12 мар 2018, 13:12

Выражаю свою признательность откликнувшимся.
Вероятно, при формулировании своего вопроса мне следовало бы уточнить, что запуск пользовательского задания cron предусматривается выполнять в течение активного сеанса работы пользователя в системе.
Конструкция export DISPLAY=:0 && команда сработала и была опробована на последовательностях команд с использованием уведомлений zenity, а также запуске приложений GUI, например firefox "http://news.mail.ru"

Закрыто

Вернуться в «Системные утилиты»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость