我在脚本中运行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的东西。
有帮助吗?谢谢