11 мая 2013 г., 14:02 пользователь Dmitry A. Zhiglov < dmitry.zhig...@gmail.com> написал:
> Доброго времени суток, > > Есть работающий slapd, который надо время от времени перезагружать. > Написан скрипт, который выполняет следущее: > > 1) выполняет "/etc/init.d/slapd stop" > 2) в цикле проверяет "остановился ли slapd?" > ^^^^^^^^^^^^ А это точно нужно? Не будет ли более правильным что-то типа такого: try_stop=`/etc/init.d/slapd stop` stop_status=$? и далее анализировать статус остановки 3) если НЕ остановился, то проверить через 1 минуту > 4) если Остановился, то выполнить задачу > 5) если НЕ остановился спустя 20 попыток - отправить алерт > > Бывает, что "/etc/init.d/slapd stop" завершается с ошибкой. Ошибка, > как правило, результат до-о-олгого завершения самого slapd, спустя ~5 > минут сервис останавливается корректно, но init.d уже не работает... > > Самое печальное в этом алгоритме, что когда завершается с ошибкой > "/etc/init.d/slapd stop" то и мой скрипт так же завершается с ошибкой > и алгоритм завершается на шаге No.2 > > Вопрос: как корректно и правильней перехватить ошибку от init.d > скрипта, что бы не остановился мой скрипт (на bash), а шаг No.5 отправил > уведомление? > > С уважением, > Дима >