Завершить rsync, когда родительский скрипт завершается - PullRequest
0 голосов
/ 16 декабря 2018

У меня проблема с запуском rsync внутри скрипта, вот сценарий:

создайте достаточно большой файл для тестирования rsync:

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

create 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

create 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

manullay kill rsync:

pkill rsync

Я бы ожидал rsyncзавершить работу при уничтожении родительского сценария.

Внутри killer.sh Я также пытался уничтожить -15, но ничего не изменилось.

Мне кажется, что на данный момент я что-то упускаю из-за rsync.

Любая помощь?Спасибо

...