2

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

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

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

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

3 ответа3

1

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

Например;

  • Включите службу, $ sudo systemctl enable syncthing@{myuser}.service syncthing@ndommyuser ‹.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@{myuser}.service и проверьте, что файлы конфигурации были добавлены по указанному пути.
  • Перезапустите и проверьте, что служба уже запущена и работает, когда вы входите в систему, $ systemctl status syncthing@{myuser}.service .

Н.Б. Убедитесь, что не синхронизировать саму папку конфигурации.

0

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

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

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

0

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

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .