Syncthing 无法作为 ubuntu systemd 服务启动

Syncthing 无法作为 ubuntu systemd 服务启动

我最近设置了一个运行 ubuntu 16.04 的家庭服务器。我在其上安装了 syncthing 以在我的台式机、笔记本电脑和手机之间进行同步。

所以我想要同步作为系统服务运行,这意味着该服务在 PC 启动时启动,无需我登录,但我希望它同步我个人用户主目录 (/home/ryan/Sync) 中的文件。

我按照说明这里,但我遇到了一个问题,即服务在系统启动时无法启动。以下是我登录并检查状态时看到的内容...

在此处输入图片描述

然后,我要做的就是运行,它就可以正常工作;但我只想让它启动,而无需我登录并运行命令。systemctl start [email protected]

答案1

如果您想保持主文件夹加密并使用系统服务从文件系统未加密部分同步数据,则需要home/{myuser}/.config/syncthing通过在运行 Syncthing 时使用参数将 Syncthing 配置文件夹的位置(默认)移出加密的主目录-home="/path/to/config

例如;

  • 启用服务,$ sudo systemctl enable syncthing@{myuser}.service并记下[email protected]例如 /lib/systemd/system/[email protected])。
  • 修改服务,添加到该行;sudo nano /lib/systemd/system/[email protected]-home="/path/to/.config/syncthing"ExecStart=

    [Unit]
    Description=Syncthing - Open Source Continuous File Synchronization for %I
    Documentation=man:syncthing(1)
    After=network.target
    [email protected]
    
    [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

NB确保不要同步配置文件夹本身。

答案2

问题与我的加密主目录有关。我猜想操作系统无法在我的本地用户下启动同步进程,直到我登录并解密我的主目录。

最后我决定按照以下步骤删除主目录中的加密这些指示。

现在一切都很顺利!

答案3

您可以将其作为 Ubuntu 中的启动程序启用,以便它在登录时启动,而不是使用 systemctl。

在HUD上搜索启动应用程序,选择添加

将其命名为 Syncthing

在 16.04 中,命令将是 /usr/bin/syncthing -no-browser -home="/home/youruserfolder/.config/syncthing" 替换 youruserfolder。

添加评论。

单击添加保存。

退出后重新登录并检查您的状态:http://127.0.0.1:8384/

相关内容