У меня проблема с запуском 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.
Любая помощь?Спасибо