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

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

Автор темы
madesta
Сообщения: 293
Зарегистрирован: 11 июн 2017, 18:47
Решено: 7
Благодарил (а): 23 раза
Поблагодарили: 60 раз

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

Сообщение madesta » 10 мар 2018, 19: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, 10:12
Выражаю свою признательность откликнувшимся.
Вероятно, при формулировании своего вопроса мне следовало бы уточнить, что запуск пользовательского задания cron предусматривается выполнять в течение активного сеанса работы пользователя в системе.
Конструкция export DISPLAY=:0 && команда сработала и была опробована на последовательностях команд с использованием уведомлений zenity, а также запуске приложений GUI, например firefox "http://news.mail.ru"

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

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

slant
Сообщения: 1779
Зарегистрирован: 21 июн 2017, 15:09
Решено: 28
Благодарил (а): 14 раз
Поблагодарили: 773 раза

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

Сообщение slant » 10 мар 2018, 19:34

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

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

Chocobo
Сообщения: 9171
Зарегистрирован: 27 авг 2016, 19:57
Решено: 198
Откуда: НН
Благодарил (а): 639 раз
Поблагодарили: 2624 раза

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

Сообщение Chocobo » 11 мар 2018, 08:08

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

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

slant
Сообщения: 1779
Зарегистрирован: 21 июн 2017, 15:09
Решено: 28
Благодарил (а): 14 раз
Поблагодарили: 773 раза

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

Сообщение slant » 11 мар 2018, 08:25

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

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

Автор темы
madesta
Сообщения: 293
Зарегистрирован: 11 июн 2017, 18:47
Решено: 7
Благодарил (а): 23 раза
Поблагодарили: 60 раз

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

Сообщение madesta » 12 мар 2018, 10:12

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

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