The systemd exit code definitions (introduced in c586a17, refs #1324) caused problems. Per default systemd considers a return code != 0 as failed. So when you click on "Restart" in the WebUI an error appears: systemd[953]: syncthing.service: main process exited, code=exited, status=3/NOTIMPLEMENTED systemd[953]: Unit syncthing.service entered failed state. systemd[953]: syncthing.service failed. systemd[953]: syncthing.service holdoff time over, scheduling restart. systemd[953]: Started Syncthing - Open Source Continuous File Synchronization. systemd[953]: Starting Syncthing - Open Source Continuous File Synchronization... syncthing[13222]: [LFKUK] INFO: syncthing v0.10.30 (go1.4.2 linux-amd64 default) builduser@jara 2015-03-29 07:46:44 UTC To fix this error we have to add the "succes codes" 2, 3, 4 to "SuccessExitStatus": syncthing[13006]: [LFKUK] INFO: Restarting syncthing[13006]: [LFKUK] OK: Exiting systemd[953]: syncthing.service holdoff time over, scheduling restart. systemd[953]: Started Syncthing - Open Source Continuous File Synchronization. systemd[953]: Starting Syncthing - Open Source Continuous File Synchronization... syncthing[13031]: [LFKUK] INFO: syncthing v0.10.30 (go1.4.2 linux-amd64 default) builduser@jara 2015-03-29 07:46:44 UTC To make sure that syncthing restarts in case of error, and to make sure that "Restart=on-failure" actually works, let's remove "RestartPreventExitStatus=1". Systemd considers this as an error per default and the restart will be triggered successfully.
This directory contains a configuration for running syncthing under the "systemd" service manager on Linux both under either a systemd system service or systemd user service.
-
Install systemd.
-
If you are running this as a system level service:
-
Create the user you will be running the service as (foo in this example).
-
Copy the syncthing@.service files to /etc/systemd/system
-
Enable and start the service systemctl enable syncthing@foo.service systemctl start syncthing@foo.service
-
If you are running this as a user level service:
-
Log in as the user you will be running the service as
-
Copy the syncthing.service files to /etc/systemd/user
-
Enable and start the service systemctl --user enable syncthing.service systemctl --user start syncthing.service
Log output is sent to the journal.