Публикация рассматривает вариант запуска и остановки Диска Яндекс по расписанию (пользовательское задание cron), при котором также будет запущен и остановлен индикатор Диска Яндекс.
Такие действия можно осуществлять как при использовании одной учётной записи Диска Яндекс, так и нескольких учётных записей. Кроме того, эти же действия можно осуществлять вызовом так называемых кнопок запуска и остановки. Выбор способа зависит от предпочтений пользователя.
Изменение конфигурации (конфигураций) клиента Диска ЯндексТакие действия можно осуществлять как при использовании одной учётной записи Диска Яндекс, так и нескольких учётных записей. Кроме того, эти же действия можно осуществлять вызовом так называемых кнопок запуска и остановки. Выбор способа зависит от предпочтений пользователя.
Так как в рассматриваемом варианте запуск и остановка клиента Диска Яндекс не будет осуществлять командами индикатора, то в конец файла конфигурации клиента Диска Яндекс config.cfg необходимо добавить строки:
startonstartofindicator="no"
stoponexitfromindicator="no"
Настройка автостарта индикатора Диска Яндекс
Проверьте в файле настроек индикатора соответствие строки autostart значению no, то есть должно быть autostart="no".
Файл настроек индикатора: ~/.config/yd-tools/yandex-disk-indicator.conf
Создание исполняемого файла запуска
Если у Вас только 1 учётная запись Яндекса, то файл запуска имеет вид:
#!/bin/bash
yandex-disk start
yandex-disk-indicator
exit
После запуска демона Диска Яндекс и графического индикатора сам скрипт прекратит свою работу, а запущенные Диск Яндекс и его графический индикатор будут выполняться.
Если у Вас несколько учётных записей, то потребуется независимый запуск, если Вы, конечно, не сторонник одновременной работы нескольких демонов Диска Яндекс и соответствующих им индикаторов одновременно. Во втором случае следует ознакомиться с первой частью этой публикации или обратиться к документации индикатора от разработчиков.
Не исключено, что приводимый ниже скрипт для Ваших потребностей может показаться избыточным. В таком случае можно отказаться от некоторых строк. Так как по тексту будут приводиться комментарии (см. символы # и текст курсивом), то, полагаю, их назначение будет понятным.
#!/bin/bash
# Проверка наличия запущенного экземпляра Диска Яндекс.
# Если демон запущен, то в каталоге /tmp имеется каталог, в имени
# которого присутствует yandex-disk-
# Если Диск Яндекс запущен, ты вызывается команда его
# остановки yandex-disk stop (актуально для запуска по расписанию).
# Если про проверке такого каталога не найдено,
# то не производится никаких действий.
# Команде "Ничего не делать" соответствует двоеточие, то есть :
yd=/tmp/yandex-disk-*
if [ -d $yd ]; then
yandex-disk stop
else
:
fi
# Бывает, что в каталоге настроек Диска Яндекс появляется файл crash.txt
# Если такой файл будет найден, то он удаляется.
# crash, D1, D2 представляют из себя пути. Данные значения применены для
# того, чтобы вместо указания полного пути использовать переменные.
crash=/home/user/.config/yandex-disk/crash.txt
D1=/home/user/.config/yandex-disk
D2=/home/user/scripts/yandex/client-1
if [ -f $crash ]; then
rm -f $D1/crash.txt
else
:
fi
# Текущие файлы настроек клиента Диска Яндекс удаляются (rm), а вместо них
# записываются (cp) данные нужного аккаунта (3 файла настроек).
rm -f $D1/config.cfg
rm -f $D1/iid
rm -f $D1/passwd
cp $D2/config.cfg $D1
cp $D2/iid $D1
cp $D2/passwd $D1
# Запуск демона Диска Яндекс и графического индикатора.
yandex-disk start
yandex-disk-indicator
exit
Создание исполняемого файла остановки
Проверяется наличие запущенного индикатора Диска Яндекс по имени его процесса. Если такой процесс в системе присутствует, то происходит вызов команды остановки графического индикатора. После этого вызывается команда остановки Диска Яндекс.
#!/bin/bash
[ "$(pidof python3 /usr/bin/yandex-disk-indicator)" ] && pkill yd-tools || sleep 1
yandex-disk stop
exit
Выбор запуска: по расписанию или вручную
Если запуск будет производиться по расписанию, то при его выполнении для отображения индикатора команду следует указать следующим образом:
EXPORT DISPLAY=:0 && путь_к_ скрипту
Комментариев нет:
Отправить комментарий