我写的就是这个Perl脚本。(/tmp/file
是fuge)
system("ssh host1 'rsync -av /tmp/file host2:/tmp/'");
然后,我运行此脚本,然后按Ctrl + C终止。
脚本已停止,但host1上的rsync进程仍在运行。
如何通过Ctrl + C停止rsync进程?
答案 0 :(得分:0)
我猜你应该捕获rsync进程id(PID)并在你检测到CTRL-C中断时终止这个PID。使用bash脚本,您可以使用 pid = $!捕获最后一个pid。您可以使用此信号SIGINT上的bash 陷阱函数检测CTRL-C中断(SIGINT = 2),例如:陷阱'clean_exit'SIGINT 启动干净退出功能。然后你可以在干净的退出功能中做任何你需要的事情,比如杀死以前捕获的PID。
答案 1 :(得分:0)
试
system("ssh -t host1 'rsync -av /tmp/file host2:/tmp/'");