Syncthing kann nicht als Ubuntu-Systemd-Dienst gestartet werden

1439
Ryan Stull

Ich habe vor kurzem einen Heimserver eingerichtet, auf dem Ubuntu 16.04 läuft. Ich habe die Synchronisierung darauf installiert, um zwischen meinem Desktop, Laptop und Telefon zu synchronisieren.

Ich möchte, dass Syncthing als Systemdienst ausgeführt wird, dh der Dienst wird beim Start des PCs gestartet, ohne dass ich mich anmelden muss. Ich möchte jedoch, dass die Dateien im Heimatverzeichnis meines persönlichen Benutzers (/ home / ryan / Sync) synchronisiert werden.

Ich habe die Anweisungen hier befolgt, aber ich habe ein Problem, bei dem der Dienst beim Systemstart nicht gestartet werden kann. Folgendes sehe ich beim Einloggen und Überprüfen des Status ...

Syncthing kann nicht als Ubuntu-Systemd-Dienst gestartet werden

Dann muss ich nur noch laufen systemctl start syncthing@ryan.serviceund es funktioniert gut. Ich möchte aber nur, dass es startet, ohne dass ich mich einloggen und den Befehl ausführen muss.

2

3 Antworten auf die Frage

1
gamdow

Wenn Sie den Basisordner verschlüsselt lassen und einen Systemdienst verwenden möchten, um Daten aus einem unverschlüsselten Teil Ihres Dateisystems zu synchronisieren, müssen Sie den Speicherort des Syncthing-Konfigurationsordners ( home//.config/syncthingstandardmäßig) aus dem verschlüsselten Basisverzeichnis mithilfe von verschieben das -home="/path/to/configArgument beim Ausführen von Syncthing.

Zum Beispiel;

  • Aktivieren Sie den Dienst, $ sudo systemctl enable syncthing@.serviceund notieren Sie sich den Ort von syncthing@.service( z /lib/systemd/system/syncthing@.service . B. ).
  • Ändern Sie den Dienst sudo nano /lib/systemd/system/syncthing@.serviceund fügen Sie -home="/path/to/.config/syncthing"der ExecStart=Linie hinzu.

    [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 
  • Starten Sie den Dienst, $ sudo systemctl start syncthing@.serviceund prüfen Sie, ob die Konfigurationsdateien zum angegebenen Pfad hinzugefügt wurden.
  • Starten Sie neu und überprüfen Sie, ob der Dienst bereits läuft, sobald Sie sich angemeldet haben $ systemctl status syncthing@.service.

Hinweis: Stellen Sie sicher, dass Sie den Konfigurationsordner nicht selbst synchronisieren.

0
Ryan Stull

Das Problem hatte etwas mit meinem verschlüsselten Heimatverzeichnis zu tun. Ich vermute, das Betriebssystem konnte unter meinem lokalen Benutzer keinen Synchronisierungsvorgang starten, bis ich mich in ein entschlüsseltes Home-Verzeichnis anmeldete.

Am Ende habe ich mich entschieden, die Verschlüsselung meines Heimatverzeichnisses zu entfernen, indem ich diese Anweisungen befolge.

Alles funktioniert jetzt gut!

0
masonbee

Sie können es als Startprogramm in Ubuntu aktivieren, so dass es beim Anmelden beginnt, anstatt systemctl zu verwenden.

Suchen Sie im HUD nach Startanwendungen. Wählen Sie Hinzufügen

Nennen Sie es Syncthing

In 16.04 lautet der Befehl / usr / bin / syncthing -no-browser -home = "/ home / youruserfolder / .config / syncthing" und ersetzt Ihren userfolder.

Einen Kommentar hinzufügen.

Speichern Sie durch Klicken auf Hinzufügen.

Melden Sie sich wieder ab und wieder an und überprüfen Sie Ihren Status unter http://127.0.0.1:8384/.