我最近设置了一个运行 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/