четверг, 3 октября 2024 г.

Задержка автостарта pCloud при старте Linux Cinnamon и xfce. Запуск pCloud по расписанию

При первом запуске клиента синхронизации pCloud автоматический запуск при старте системы прописывается в автозагрузку:


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

1. Задержка запуска pCloud в Cinnamon (простая настройка)

Перейдите в "Параметры системы – Автозагрузка". Нажмите в нижней части окна на значок редактирования выделенной записи и либо вручную впишите число секунд, либо нажимайте кнопки + или - для точной настройки данного значения. Примеры на рисунках ниже. Последний рисунок демонстрирует пример итогового результата в 40 секунд. Максимальное значение задержки, которую можно установить таким образом, составляет 99 секунд.




Собственно за задержку отвечает параметр X-GNOME-Autostart-Delay= файла типа .desktop. Такие файлы расположены в папке австозапускаемых приложений, перейти в который можно командой xdg-open ~/.config/autostart

2. Задержка запуска pCloud в xfce (простая настройка) недоступна. Автозапуск можно либо оставить активным, либо деактивировать (т.е. выключить). К слову, подобное имеется и в Cinnamon. Поясняющие картинки ниже:

 



Эти настройки отображают состояние значений Hidden= для xfce и 
X-GNOME-Autostart-enabled= для Cinnamon в автосоздаваемом файле запуска ~/.config/autostart/pcloud.desktop  (файл можно редактировать в текстовом редакторе, например xed ~/.config/autostart/pcloud.desktop).

В xfce при установленной галочке в настройках "Сеансы и запуск" Hidden=false, а при снятой – Hidden=true

В Cinnamon при установленном движке в левое положение (выключено) X-GNOME-Autostart-enabled=false

3. Универсальное решение для задержки запуска pCloud в Cinnamon и xfce (вариант)

Снимите галочку в поле pcloud "Сеансы и запуск" в xfce или установите движок влево строки pcloud в Cinnamon (см. картинки выше). Далее используется либо добавление записей в свой скрипт, выполняемый при входе пользователя в систему, либо добавление команд по отдельности в настройках автозагружаемых программ. В случае добавления в список автозагружаемых программ вторая команда вводится как просто /home/minter/Tools/pcloud (без символа &):

sleep 120
/home/minter/Tools/pcloud &

sleep 120 означает паузу (спать) 120 секунд, прежде чем следующая команда будет запущена.

/home/minter/Tools/pcloud & – запуск собственно приложения pcloud (указывается полный путь к файлу pcloud). Символ & означает переход к следующей команде, не дожидаясь завершения работы предыдущей. То есть, запустил pcloud и пользовательский скрипт выполняет либо следующие команды, либо даётся команды на завершение работы скрипта – exit

В такой реализации при запуске pCloud только отображается значок запущенного приложения на панели, а само гласное окно программы не открывается.

Если необходимо, чтобы pCloud после запуска отработал некоторое время, а потом сам же выключился, то можно использовать набор команд (пример):

sleep 300
pidof pcloud > /tmp/pcloud.txt
VAR=`cat /tmp/pcloud.txt | grep -o [0-9]*$`
kill -15 $VAR

Это можно оформить отдельным скриптом, например pcloud-stop.sh

#!/bin/bash
sleep 300
pidof pcloud > /tmp/pcloud.txt
VAR=`cat /tmp/pcloud.txt | grep -o [0-9]*$`
kill -15 $VAR
exit

4. Вариант отложенного запуска pCloud для своих нужд 

После запуска pcloud задаётся вопрос: оставить ли клиент работающим и далее или автоматически выключить через указанное в скрипте время. 


Скрипт формы:

#!/bin/bash
zenity --question --timeout=10 --title="Запрос" --text="pCloud drive\nвыключать\nавтоматически? \n$task" \
--ok-label="Нет" \
--cancel-label="Да"
answer=$?
if [ "$answer" -eq 0 ]; then
    :
elif [ "$answer" -eq 1 ]; then
    /home/minter/Tools/scripts/modules/pcloud-stop.sh &
elif [ "$answer" -eq 5 ]; then
    /home/minter/Tools/scripts/modules/pcloud-stop.sh &
fi
exit 0

Чтобы не нажимать всё время "Да" введён тайм-аут времени ожидания ответа в 10 секунд. Если в течение этого времени никакая кнопка не была нажата, то система будет считать, что нажата кнопка "Да" и будет запущен скрипт pcloud-stop.sh  Если нажать кнопку "Нет", то никаких следующих команд подано не будет. Скрипт формы можно оформить как исполняемый файл pcloud-querry.sh

Как итог, команды описанных выше задач в скрипте пользователя (например, start.sh):

/home/minter/Tools/pcloud &
sleep 10
$do/modules/pcloud-querry.sh &

Задержка в 10 секунд установлена экспериментально. На моих компьютерах форма запроса появляется через 1-2 секунды после старта pcloud.

$do/modules определяет путь к папке с пользовательскими скриптами для различных задач. В упоминаемом start.sh значение $do задаётся в самом начале, например:

#!/bin/bash
do=/home/minter/Tools/scripts

5. Запуск pCloud через cron 

Для запуска в через планировщик создан отдельный скрипт запуска pcloud. Пример:

#!/bin/bash
do=/home/minter/Tools/scripts
/home/minter/Tools/pcloud &
sleep 10
$do/modules/pcloud-querry.sh &
exit

Внесение задания в cron через crontab -e (пример):

25 20 * * * export DISPLAY=:0 && /home/minter/Tools/scripts/pcloud-cron.sh

Про свои задания cron здесь. Читать "4. Назначение пользовательского задания cron".

Комментариев нет:

Отправить комментарий