Я нашел основание для этого изящного цикла в другом месте на serverfault. Повороты там не являются никакой потребностью, сохраняют код выхода, поскольку можно протестировать непосредственно на самой команде;
until ncftpput -DD -z -u user -p password remoteserver /remote/dir /local/file; do
echo Tansfer disrupted, retrying in 10 seconds...
sleep 10
done
Возможно, это поможет Вам http://www.source-code.biz/snippets/java/7.htm
Для простого решения смотрите на супервизор. Это доступно как пакет, по крайней мере, для Debian и Ubuntu.