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)} | ||