Синхронизация не запускается как служба Ubuntu Systemd

1330
Ryan Stull

Я недавно установил домашний сервер под управлением Ubuntu 16.04. Я установил синхронизацию на нем для синхронизации между моим рабочим столом, ноутбуком и телефоном.

Поэтому я хочу, чтобы синхронизация выполнялась как системная служба, то есть служба запускается при запуске ПК, без необходимости входа в систему, но я хочу, чтобы она синхронизировала файлы в домашнем каталоге моего личного пользователя (/ home / ryan / Sync).

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

enter image description here

Затем все, что мне нужно сделать, это запустить systemctl start syncthing@ryan.serviceи все работает нормально; но я просто хочу, чтобы это началось без входа в систему и запуска команды.

2

3 ответа на вопрос

1
gamdow

Если вы хотите сохранить домашнюю папку в зашифрованном виде и использовать системную службу для синхронизации данных из незашифрованной части вашей файловой системы, вам нужно переместить расположение папки конфигурации Syncthing ( home//.config/syncthingпо умолчанию) из зашифрованного домашнего каталога, используя -home="/path/to/configаргумент при запуске Syncthing.

Например;

  • Включите службу $ sudo systemctl enable syncthing@.serviceи запомните местоположение syncthing@.service( например /lib/systemd/system/syncthing@.service ).
  • Изменить услугу sudo nano /lib/systemd/system/syncthing@.service, добавив -home="/path/to/.config/syncthing"в ExecStart=строку;

    [Unit] Description=Syncthing - Open Source Continuous File Synchronization for %I Documentation=man:syncthing(1) After=network.target Wants=syncthing-inotify@.service  [Service] User=%i ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0 -home="/path/to/.config/syncthing" Restart=on-failure SuccessExitStatus=3 4 RestartForceExitStatus=3 4  [Install] WantedBy=multi-user.target 
  • Запустите службу $ sudo systemctl start syncthing@.serviceи убедитесь, что файлы конфигурации были добавлены по указанному пути.
  • Перезапустите и проверьте, что служба уже запущена и работает, как только вы вошли в систему $ systemctl status syncthing@.service.

nb Убедитесь, что вы не синхронизируете саму папку config.

0
Ryan Stull

Эта проблема была связана с моим зашифрованным домашним каталогом. Я предполагаю, что ОС не может запустить процесс синхронизации под моим локальным пользователем, пока я не войду в расшифрованный домашний каталог.

В конце концов я просто решил удалить шифрование на моем домашнем каталоге, следуя этим инструкциям.

Теперь все отлично работает!

0
masonbee

Вы можете включить его в качестве программы запуска в Ubuntu, чтобы он запускался при входе в систему вместо использования systemctl.

Поиск в HUD для запуска приложений Выберите Добавить

Назовите это Syncthing

В 16.04 команда будет / usr / bin / syncthing -no-browser -home = "/ home / youruserfolder / .config / syncthing" заменяя youruserfolder.

Добавить комментарий.

Сохранить, нажав кнопку Добавить.

Выйдите из системы, а затем войдите и проверьте свой статус, перейдя по адресу http://127.0.0.1:8384/.

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