【免费下载链接】proton-drive-sync
Local folders, automatically synced to Proton Drive. (Unofficial Sync Client)
Proton Drive Sync 是一款非官方同步客户端,能把本地文件夹自动同步到 Proton Drive 云盘,支持 macOS、Linux 与 Windows。默认情况下它只是手动启动的命令行程序——本文教你用一条命令把它装成 Linux 的 systemd 服务或 macOS 的 launchd 代理,实现登录即启动、开机即同步、崩溃自动拉起,从此再也不用每次开机手动敲start。
三种启动模式,先做选择
运行 setup 向导 时,程序会问一个问题:“When should the sync service start?”,对应三种策略:
| 模式 | 触发时机 | 适用场景 | 权限要求 |
|---|---|---|---|
| 不自动启动 | 手动运行proton-drive-sync start | 偶尔使用 | 无 |
| user(登录自启) | 用户登录时启动 | 个人电脑,绝大多数人选这个 ✅ | 无 |
| system(开机自启) | 系统启动即运行 | 服务器、无头主机 | Linux 需要 sudo |
- Linux:两种范围都支持,user 级由
systemctl --user管理,system 级写入/etc/systemd/system/,详见 service-linux.ts。 - macOS:只有登录自启一种(launchd 的 LaunchAgent),写入
~/Library/LaunchAgents/。 - Flatpak 环境:仅支持 user 级,程序会通过
flatpak-spawn --host在宿主系统上完成注册。
最快配置方法:一条 setup 命令搞定
如果你刚装好项目(可先git clone https://gitcode.com/gh_mirrors/pr/proton-drive-sync获取源码),推荐走交互式向导,认证、目录、自启一站式完成:
proton-drive-sync setup向导中在启动时机界面选择 “On login(user service)” 即可。选择 “On boot(system service)” 时向导会自动用 sudo 重新执行安装,无需手动加前缀。
Linux systemd 安装步骤:登录自启(user 范围)
适合日常桌面使用的标准做法:
# 1. 安装并立即启动用户级服务 proton-drive-sync service install # 2. 验证服务状态 systemctl --user status proton-drive-sync # 3. 确认同步正在运行(JSON 输出 running / stopped) proton-drive-sync status安装后程序会生成服务文件~/.config/systemd/user/proton-drive-sync.service并执行systemctl --user enable + start,下次登录自动拉起。服务模板长这样,注意Restart=on-failure表示进程崩溃后 5 秒自动重启:
[Service] ExecStart={{BIN_PATH}} start --no-daemon Restart=on-failure RestartSec=5 [Install] WantedBy=default.target完整模板见 proton-drive-sync.service。
💡 通过 SSH 远程登录时 user 服务无法注册(没有图形登录会话),程序会提示改用 system 范围安装。
Linux 系统级服务:开机就同步(system 范围)
服务器、NAS 旁路机、无头 Linux 选这个,开机不依赖任何用户登录:
# 需要 sudo 权限 sudo proton-drive-sync service install --install-scope system # 验证 sudo systemctl status proton-drive-syncsystem 范围会把服务文件写到/etc/systemd/system/proton-drive-sync.service,数据目录为/etc/proton-drive-sync,并以WantedBy=multi-user.target在开机阶段启动,同时在服务内指定User=<当前用户>确保数据归属正确(见 service-linux.ts 生成逻辑)。
两点提醒:
- system 范围仅限 Linux,在 macOS 上执行会直接报错退出(index.ts 中的校验);
- 卸载时两种范围会同时检查并清理,若存在系统级服务同样需要 sudo。
macOS launchd 安装步骤
macOS 上直接执行:
proton-drive-sync service install程序会创建~/Library/LaunchAgents/com.damianb-bitflipper.proton-drive-sync.plist并调用launchctl bootstrap gui/<uid>加载。plist 模板中两个关键配置:RunAtLoad=true(登录后立即启动)、KeepAlive.SuccessfulExit=false(异常退出自动拉起):
<key>RunAtLoad</key> <true/> <key>KeepAlive</key> <dict><key>SuccessfulExit</key><false/></dict>模板全文见 proton-drive-sync.plist,实现逻辑在 service-macos.ts。macOS 下 launchd 会把标准输出/错误分别写入~/Library/Logs/proton-drive-sync.out.log和.err.log,排查问题时可先看这两个文件。
日常运维:查看、暂停、卸载服务
安装完成后,这几个命令基本够用:
| 命令 | 作用 |
|---|---|
proton-drive-sync status | 查看服务是否在运行(JSON 格式) |
proton-drive-sync logs -f | 实时跟踪同步日志 |
proton-drive-sync logs clear | 清空日志文件 |
proton-drive-sync pause/resume | 暂停 / 恢复同步(进程不停) |
proton-drive-sync service load | 重新启用开机自启 |
proton-drive-sync service unload | 停止并关闭开机自启 |
proton-drive-sync service uninstall | 停止并彻底删除服务 |
load/unload适合临时关闭自启(比如换机器前想保留配置);uninstall会删除 user 和 system 两个位置的.service文件。另外,浏览器打开http://localhost:4242的 Dashboard 也能可视化管理自启开关,命令定义集中在 src/index.ts。
常见问题速查
Q1:重装或升级二进制后服务启动失败?先proton-drive-sync service uninstall再重新service install,让服务文件里的ExecStart路径刷新为当前二进制位置。
Q2:user 服务在 SSH 会话里装不上?systemd 的 user 单元需要图形登录会话。远程机器请改用--install-scope system(见上文 Linux 系统级一节)。
Q3:Flatpak 版能用 system 范围吗?不能。Flatpak 沙箱内无法使用 sudo,setup 向导会隐藏 system 选项,只保留登录自启。
Q4:如何彻底卸载?运行proton-drive-sync reset --purge,它会停止服务、删除凭据并清空所有配置与同步历史;再按包管理器方式(brew / apt / dnf)移除程序本体即可。
小结
Proton Drive Sync 把“开机自启”封装成了四条子命令:service install(含--install-scope user/system两种 Linux 范围)、service load、service unload、service uninstall,配合Restart=on-failure的自愈能力,个人电脑选user 登录自启、服务器选system 开机自启,两条命令就能让云盘同步彻底“无感运行”。相关实现源码可参考 src/cli/service/ 目录。
【免费下载链接】proton-drive-sync
Local folders, automatically synced to Proton Drive. (Unofficial Sync Client)
相关推荐
如何让NullHub开机自启:systemd与launchd系统服务注册完整教程
如何让NullHub开机自启:systemd与launchd系统服务注册完整教程 想让 NullHub 开机自启 ,其实只需要一条命令。NullHub 是 Nu
终极Switch手柄兼容指南:零成本解锁全平台控制器
终极Switch手柄兼容指南:零成本解锁全平台控制器 你是否曾为Switch官方手柄的高昂价格而烦恼?是否家中闲置着PS4、Xbox或Wii手柄却无法在Swit
游戏开发驱动开发嵌入式Nitro入门实战:10分钟搭建你的第一个高性能原生模块
Nitro入门实战:10分钟搭建你的第一个高性能原生模块 Nitro是一个用于构建强大且快速的原生模块的框架,通过静态编译的绑定层连接JSI,让开发者能够用C+
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考