后台服务模式——GoodSync 作为无人值守系统服务运行
为什么需要后台服务
普通 GoodSync 需要在桌面环境运行——用户登录后打开 GoodSync 程序,它才能执行同步任务。但以下场景需要无人值守的长期运行:
- 作为服务器上的自动备份服务,7x24 小时运行
- 在没有显示器的家庭 NAS 上,作为 GoodSync Server 被动接收同步请求
- 作为团队共享目录的自动同步节点,开机就自动开始工作
GoodSync 的 Server 版本提供了后台服务模式,解决这些需求。
Windows 服务注册
前置条件
- GoodSync Server 版许可证(Workstation 版不支持注册为服务)
- Windows 10/11 或 Windows Server 2016+
- 管理员权限
注册步骤
- 打开 GoodSync 主界面(以管理员身份运行)
- 菜单栏 → Tools → Options → Server 标签
- 点击「Install Server」按钮
- 在弹出的对话框中配置:
- 运行账户:选择一个专用的本地账户(建议不要用当前登录账户,服务账户通常不登录系统)
- 启动类型:设为「Automatic」开机自动启动
- 服务名称:保持默认即可
- 点击确认,GoodSync 会调用 Windows Service Control Manager 注册服务
注册完成后,GoodSync 会从「桌面上的程序」转变为「系统后台服务」——在 services.msc 中可以看到「GoodSync Server」服务。
管理服务状态
# 查看服务状态
Get-Service -Name "GoodSync Server"
# 启动服务
Start-Service -Name "GoodSync Server"
# 停止服务
Stop-Service -Name "GoodSync Server"
# 重启服务
Restart-Service -Name "GoodSync Server"
# 查看服务运行日志(Windows 事件查看器)
Get-WinEvent -LogName "Application" | Where-Object {$_.ProviderName -like "*GoodSync*"}
Linux daemon 配置
GoodSync Linux 版可以通过 systemd 注册为系统服务。
创建 systemd 单元文件
sudo tee /etc/systemd/system/goodsync.service << 'EOF'
[Unit]
Description=GoodSync Sync Service
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
ExecStart=/usr/local/bin/goodsync --daemon
ExecStop=/usr/local/bin/goodsync --shutdown
User=goodsync
Group=goodsync
Restart=on-failure
RestartSec=10
# 资源限制(可选)
MemoryMax=512M
[Install]
WantedBy=multi-user.target
EOF
启用并启动
# 创建专用账户(安全最佳实践)
sudo useradd -r -s /usr/sbin/nologin goodsync
# 重载 systemd 配置
sudo systemctl daemon-reload
# 设置开机自启
sudo systemctl enable goodsync
# 启动服务
sudo systemctl start goodsync
# 查看状态
sudo systemctl status goodsync
查看日志
# 实时查看 GoodSync 服务日志
sudo journalctl -u goodsync -f
# 查看最近 100 行
sudo journalctl -u goodsync -n 100
# 查看今天的日志
sudo journalctl -u goodsync --since today
Server 模式与桌面模式的差异
| 对比项 | 桌面模式 | Server 模式 |
|---|---|---|
| 启动方式 | 用户登录后手动打开 | 开机自启 |
| 是否需要用户登录 | 是 | 否 |
| 作业配置 | 在 GUI 中编辑 | 可以通过 GUI 创建后导出,或在桌面版配置好后导入到服务账户 |
| 日志位置 | GUI 内 Log 标签 | 日志文件 / Windows 事件 / systemd journal |
| GoodSync Server 端点 | 作为 GoodSync Server 被动接收同步 | 同时具备主动同步和被动接收能力 |
| 资源占用 | 与普通 GUI 程序相当 | 较低,只运行同步引擎 |
安全注意事项
后台服务模式因为不依赖用户登录,权限配置需要格外小心:
- 使用专用账户:创建一个仅用于 GoodSync 的本地账户,不给它管理员权限。GoodSync 需要的权限仅包括读写指定的同步目录和建立网络连接。
- 目录权限:确保 GoodSync 运行账户对同步的源目录和目标目录有正确的读写权限——不要给不必要的目录权限。
- 端口与防火墙:GoodSync Server 模式需要在本机监听端口(默认 11000 用于 Web 管理界面,GSTP 端口动态协商)。确保防火墙只允许来自可信 IP 的连接。
- GoodSync 连接:在 GoodSync Connect 中,Server 模式会把当前设备登记到 Connect 网络,确保只有你信任的账户能访问它。
Server 模式的升级
升级 GoodSync Server 版时,需要先停止服务、运行安装程序、然后重新启动服务:
# Windows PowerShell
Stop-Service -Name "GoodSync Server"
# 运行新版本安装包
Start-Service -Name "GoodSync Server"
# Linux
sudo systemctl stop goodsync
sudo ./install-gssh
sudo systemctl start goodsync
升级过程中作业配置和 GoodSync Connect 账户登记信息都会被保留。