我通过发出命令在我自己的 C++ 程序中使用 rsync system("rsync -rauzvq root@host:/folder");
我用它来保持多个系统同步。
现在我遇到的问题是,当远程主机关闭并且它仍在与我的程序进行 rsync-ing 时,我的程序在 TCP 超时期间挂起。所以我想,我会调整 rsync 套接字的 TCP 超时参数,但我不知道如何(--sockopts 不起作用)。
解决此问题的另一种方法是进行分叉系统调用并检查 rsync pID 在特定超时后是否仍然存在,否则将其杀死。唯一的缺点是我无法检查进程是真正同步还是只是挂在 TCP 超时上?
那么,你们会尝试什么?