2018-11-21 Перенаправление Всего Вывода В Утилитах
Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах [21.11.2018 07:25] николай_глазов создано |
правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах [20.05.2019 15:18] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | **Что произошло:** Нельзя полностью перенаправлять вывод утилит в лог. Это нарушение strongbash020.\\ | ||
+ | **Постановка задачи**: | ||
+ | Сделать вменяемый вывод /app/reductor/service restart .\\ | ||
+ | |||
+ | **Разбор**: При рестарте редуктора(/app/reductor/service restart) выполняется много действий. Идёт запуск нескольких утилит. Вывод от них довольно большой, из-за этого теряется смысл запуска редуктора.\\ | ||
+ | **Ошибка:** В нескольких утилитах, которые запускаются при инициализации было написано следующее:\\ | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | #!/bin/bash | ||
+ | . /app/reductor/usr/local/Reductor/etc/const | ||
+ | exec 1>"$LOGFILE" | ||
+ | exec &>"$LOGFILE" | ||
+ | |||
+ | ..... | ||
+ | |||
+ | </code> | ||
+ | |||
+ | Тем самым весь вывод переводится в файл. Это затрудняет работу, потому что при запуске из консоли не увидим вывода и ошибок при запуске. | ||
+ | |||
+ | **Исправление** Требуется перенаправлять вывод при запуске утилиты. При этом требуется выводить код возврата, если потребуется выяснить причины, то уже будет понятно, что надо смотреть в лог. | ||
+ | |||
+ | **/etc/rc.d/init.d/reductor** | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | #!/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 | ||
+ | } | ||
+ | |||
+ | ... | ||
+ | </code> | ||
+ | |||
+ | ~~OWNERAPPROVE~~ /*Не удаляйте эту строку и ниже!*/ | ||
+ | |||
+ | {(rater>id=1|name=Прочитал_правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах|type=vote|trace=user|tracedetails=1)} | ||