Что произошло: Нельзя полностью перенаправлять вывод утилит в лог. Это нарушение strongbash020.
Постановка задачи:
Сделать вменяемый вывод /app/reductor/service restart .
Разбор: При рестарте редуктора(/app/reductor/service restart) выполняется много действий. Идёт запуск нескольких утилит. Вывод от них довольно большой, из-за этого теряется смысл запуска редуктора.
Ошибка: В нескольких утилитах, которые запускаются при инициализации было написано следующее:
#!/bin/bash . /app/reductor/usr/local/Reductor/etc/const exec 1>"$LOGFILE" exec &>"$LOGFILE" .....
Тем самым весь вывод переводится в файл. Это затрудняет работу, потому что при запуске из консоли не увидим вывода и ошибок при запуске.
Исправление Требуется перенаправлять вывод при запуске утилиты. При этом требуется выводить код возврата, если потребуется выяснить причины, то уже будет понятно, что надо смотреть в лог.
/etc/rc.d/init.d/reductor
#!/bin/bash . /cfg/config . /etc/rc.d/init.d/functions . /usr/local/Reductor/etc/const prog="reductor" start(){ local RC echo -n $"Starting $prog: " /usr/local/Reductor/bin/start.sh &>> $LOGFILE RC=$? if [ $RC != 0 ];then echo -e "\nПри остановке редуктора произошли ошибки." echo "Выяснить причины можно в $LOGFILE" fi return $RC } ...
~~OWNERAPPROVE~~
Прочитал правила разработки как не надо делать 2018-11-21 перенаправление всего вывода в утилитах |