Dropbox на сервере с systemd
Установка
Для использования Dropbox на серверах без GUI необходимо установить его с помощью официальной инструкции. Далее для управления работой демона нужно разместить Python-скрипт в директории с исполняемым файлом dropboxd.
Автозапуск
Автозапуск с правами пользователя обеспечивается через systemd.
Пусть исполняемый файл dropboxd лежит по пути /home/username/.dropbox-dist
Создаем симлинк на dropboxd в /usr/bin:
sudo ln -s /home/username/.dropbox-dist/dropboxd /usr/bin/dropboxd
По пути /lib/systemd/system/ создаем файл dropbox@username.service со следующим содержимым (старт демона при автозапуске будет производиться после монтирования локальных ФС и запуска сети):
[Unit] Description=Dropbox After=local-fs.target network.target [Service] Type=simple ExecStart=/usr/bin/dropboxd ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure User=%I [Install] WantedBy=multi-user.target
После этого останется выполнить
sudo systemctl daemon-reload && sudo systemctl start dropbox@username && sudo systemctl enable dropbox@username
(обновление списка демонов, старт нужного нам и добавление его в автозапуск). Управление демоном вы сможете производить как с помощью скрипта dropbox.py, так и с помощью systemctl.
Возможные проблемы
Периодически может возникать проблема с циклическими попытками перезапустить dropbox. По словам пользователей, это происходит из-за автообновления бинарного файла dropboxd в пользовательском каталоге /home/username/.dropbox-dist. Проблему позволяет решить смена владельца указанного каталога на root и рекурсивная замена прав для его содержимого на только чтение и исполнение (нуждается в дополнительной проверке).