当父脚本终止时终止rsync

时间:2018-12-16 01:35:23

标签: bash rsync kill

我在脚本中运行rsync时遇到问题,这是场景:

创建一个足够大的文件以测试rsync:

dd if=/dev/zero of=bigfile0 bs=1M count=1024

创建parent.sh

#!/bin/bash
#trap 'echo killrsync; kill $(jobs -p)' INT KILL TERM EXIT
#trap 'echo killrsync; kill -5 $(jobs -p)' INT KILL TERM EXIT
#trap 'echo killrsync; kill -9 $(jobs -p)' INT KILL TERM EXIT
#trap 'echo killrsync; kill -15 $(jobs -p)' INT KILL TERM EXIT
./killer.sh $$ &
rsync -avPz --bwlimit=1 bigfile0 bigfile1

创建killer.sh

#!/bin/bash
P=$1
echo "Parent: $P"
echo "Killer: $$"
sleep 5
kill -9 $P

执行场景:

~$ rm bigfile1 ; ./parent.sh ; sleep 3 ; ps aux|grep rsync
sending incremental file list
Parent: 20639
Killer: 20640
bigfile0
     71,860,224   6%   14.61MB/s    0:01:06  Killed
test     20641  9.6  0.0  16176  3580 pts/4    S    01:29   0:00 rsync -avPz --bwlimit=1 bigfile0 bigfile1
test     20642  0.0  0.0  15552  2256 pts/4    S    01:29   0:00 rsync -avPz --bwlimit=1 bigfile0 bigfile1
test     20644  0.2  0.0  15812  1324 pts/4    S    01:29   0:00 rsync -avPz --bwlimit=1 bigfile0 bigfile1
test     20654  0.0  0.0   8856   896 pts/4    S+   01:29   0:00 grep rsync

手动杀死rsync:

pkill rsync

我希望在父脚本被杀死后rsync终止。

在killer.sh内部,我也尝试杀死-15,但没有任何变化。

我认为目前我缺少关于rsync的东西。

有帮助吗?谢谢

0 个答案:

没有答案