Dropbox на сервере с systemd

Установка

Для использования Dropbox на серверах без GUI необходимо установить его с помощью официальной инструкции. Далее для управления работой демона нужно разместить Python-скрипт в директории с исполняемым файлом dropboxd.

Автозапуск

Автозапуск с правами пользователя обеспечивается через systemd.

Внимание: вместо пользователя username вы должны внести имя пользователя, под которым должен запускаться dropboxd. Ради безопасности имеет смысл создавать для запуска демона отдельного пользователя

Пусть исполняемый файл 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 и рекурсивная замена прав для его содержимого на только чтение и исполнение (нуждается в дополнительной проверке).

При таком подходе dropbox перестанет синхронизировать ваши файлы в случае выхода обновления и невозможности его установки(хотя, вероятно, это лучше, чем 100% загрузки CPU сервера из-за невозможности запустить dropbox)

Ссылки