Маунт терпит неудачу и не останавливается

У меня есть скрипт, который запускается каждые 30 м и проверяет, смонтирован ли / mnt / controlurg. Если нет, он пытается смонтировать его и извлечь из него некоторые файлы (это диск Windows). До 12.04 у меня не было проблем, но теперь, когда скрипт не может смонтировать (по любой причине) удаленный диск, команда монтирования не завершается и остается в качестве фонового процесса. И что еще хуже, новый процесс монтирования в фоновом режиме зомби создается каждые 30 м, а загрузка центрального процессора становится высокой (сейчас она составляет 44%!!).

Проверяя запущенные процессы, я получаю несколько таких записей:

root     29458 29420  0 08:35 ?        00:00:00 mount /mnt/controlurg
root     29459 29458  0 08:35 ?        00:00:00 /sbin/mount.cifs //controlurg/c$ /mnt/controlurg -o rw,noauto,user=root,passwd=example,utf8
  • Как я могу убить эти процессы? "kill -9 29459" не работает.
  • Почему эти процессы не задерживаются? Как я могу убить этого неудачного монтирования автоматически?

Интересный фрагмент /opt/scripts/sftpcont.shl:

cat $SCRIPT/computers.dat | while read line
do
echo `date "+%Y/%m/%d %H:%M:%S"` ": Copying to ${line} with samba"
isalive=`ping -q -c1 $line| grep "1 received" |wc -l`
if [ $isalive!= "0" ]
 then
  mount /mnt/$line
  rm /mnt/$linea/contingenciasap/*
  cp $SCRIPT/fitxers/sapfitcrip.zip /mnt/$line/contingenciasap
  umount /mnt/$line
fi
done

Спасибо

1 ответ

Было бы здорово, если бы вы показали свой сценарий. Но в любом случае вы должны использовать команду выхода, например:

mount <partition> /mnt/controlurg || exit 1

Эта команда просто остановит выполнение скрипта. Вы можете показать какое-нибудь сообщение (или записать в файл журнала), например:

mount <partition> /mnt/controlurg || eval 'echo "Error mounting partition" 1>&2; exit 1'

mount <partition> /mnt/controlurg || eval 'echo "Error mounting partition\n" >> mount.log; exit 1'

Чтобы убить все процессы, используйте killall команда.

Другие вопросы по тегам