adept7771
@adept7771
кратко

Консольный Yandex.Disk — как сделать автозапуск демона Yandex.Disk на Debian?

Есть сервер на Debian. Есть заинсталленый там и хорошо работающий консольный яндекс диск. Однако есть одно "НО" - демон не стартует после ребута системы, хотя при установке диска, эта фича задавалась. В ручную же обыкновенной командой yandex-disk start все работает без каких либо проблем.

Написал простейший скрипт запуска демона, назвал его yandex_autorun.sh

#!/bin/sh
yandex-disk start


Далее chmod +x на него. И проверил ручками (sh yandex_autorun.sh) - ручками скрипт запускает яндекс без проблем.

Обращаю внимание, что команда / скрипт запускается только из под юзера (adept). Под рутом выдает какую-т о хрень.

Использованные методы:

1. Закинуть скрипт sh в папку /etc/network/if-up.d/ , не помогло

2. Прописать путь до скрипта в /etc/network/interfaces не помогло

3. Засунул в кронтаб такую штуку, как советовал в схожем вопросе Илья Мальцев:

@reboot adept sleep 60 && /home/adept/yandex_autorun.sh


Тоже ничего не запустилось.

4. Пробовал писать в rc.local до exit 0. Тоже толку мало.

В init.d наваять скрипт мне не удалось.
Буду рад советам. По сути то 1 команду запустить и все.
  • Вопрос задан
  • 12025 просмотров
Решения вопроса 1
adept7771
@adept7771 Автор вопроса
кратко
Таки удалось решить потерей малой крови. Благодарю @bk0011m за помощь в поиске ответа!

Ставим яндекс диск консольный и делаем скрипт автозапуска.
Итак - содержание скрипта yandex_autostart.sh тривиально:

#!/bin/sh
yandex-disk start --dir=/home/adept/srv_storage/YandexDisc --auth=/home/adept/.config/yandex-disk/passwd


start --dir путь, куда диск качает файлы
--auth путь, где лежит сгенеренный после инсталла токен с вашими паролями / логинами

Далее топаем в крон crontab -e (без sudo!)

@reboot sleep 60 && /home/adept/yandex_autorun.sh # тут путь до вашего скриптика


Не забываем так же chmod +x путь_до_скрипта (делаем его исполняемым)

После перезагрузки крон выждет 60 секунд и пнет ваш скрипт, запустив диск.
Мишшн комплит!

Ошибки крона сваливаются во внутреннюю почту сервера, которую у меня на Debian можно легко посмотреть командой mail, номер обращения.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@AndreiLED
Хм, не понимаю, зачем так усложнять себе жизнь cron-ом, если init.d скрипт пишется за 5-20 минут в зависимости от навыков: либо копипастой одного из имеющихся скриптов, либо по гайдам раз и два.
К примеру, мой /etc/init.d/yadisk
#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          yandex_disk
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Manage Yandex.Disk deamon
### END INIT INFO

# Various constants
user=yadisk

execute() {
    su -c "$1" "$user"
}

start() {
    echo "Starting Yandex.Disk daemon..."
    execute "yandex-disk start"
}

stop() {
    echo "Stopping Yandex.Disk daemon..."
    execute "yandex-disk stop"
}

status() {
    execute "yandex-disk status"
}

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|status|restart}"
    exit 1
    ;;
esac

exit 0

Главное не забыть после этого выполнить
update-rc.d yadisk defaults
Ответ написан
bk0011m
@bk0011m
Системный администратор
А если не запускать под рутом? Или это принципиально нужно?
Дело в том, что эта софтина при синхронизации начинает безбожно жрать ресурсы и совсем не хорошо если это происходит под рутом.
А насчет вашей проблемы, подозреваю что нужно указать файл авторизации, он же токен. Вернее путь к нему
Ответ написан
JlEB-8
@JlEB-8
Еще проще, сделать так:
Автозапуск Демона Yandex.Disk
# chmod +x /etc/rc.d/rc.local
# echo "/usr/bin/yandex-disk start" >> /etc/rc.d/rc.local
Ответ написан
Комментировать
@Kren_vpravo
android developer
А можно еще проще - если на машине стоит графический интерфейс, то в меню -> системные настройки будет что-нибудь про автозапуск, где вообще ни в чем не разбираясь можно мышкой добавить приложение, указать команду (yandex-disk start) и даже задержку на запуск после запуска системы (вернее логина под данным юзером).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы