2018-11-21 Перенаправление Всего Вывода В Утилитах
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах [21.11.2018 07:28] николай_глазов Approved(николай_глазов 2018/11/21 07:29) |
правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах [20.05.2019 15:18] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ~~OWNERAPPROVE~~ /*Не удаляйте эту строку и ниже!*/ | + | **Что произошло:** Нельзя полностью перенаправлять вывод утилит в лог. Это нарушение strongbash020.\\ |
- | + | ||
- | {(rater>id=1|name=Прочитал_правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах|type=vote|trace=user|tracedetails=1)} | + | |
- | + | ||
- | **Что произошло:** Нельзя полностью перенаправлять вывод утилит в лог. Это нарушение strongbash020.\\\\ | + | |
**Постановка задачи**: | **Постановка задачи**: | ||
Сделать вменяемый вывод /app/reductor/service restart .\\ | Сделать вменяемый вывод /app/reductor/service restart .\\ | ||
- | **Разбор**: При рестарте редуктора(/app/reductor/service restart) выполняется много действий. Идёт запуск нескольких утилит. Вывод от них довольно большой, из-за этого теряется смысл запуска редуктора.\\\\ | + | **Разбор**: При рестарте редуктора(/app/reductor/service restart) выполняется много действий. Идёт запуск нескольких утилит. Вывод от них довольно большой, из-за этого теряется смысл запуска редуктора.\\ |
**Ошибка:** В нескольких утилитах, которые запускаются при инициализации было написано следующее:\\ | **Ошибка:** В нескольких утилитах, которые запускаются при инициализации было написано следующее:\\ | ||
- | <code> | + | <code bash> |
- | #!/bin/bash\\ | + | #!/bin/bash |
- | . /app/reductor/usr/local/Reductor/etc/const\\ | + | . /app/reductor/usr/local/Reductor/etc/const |
- | exec 1>"$LOGFILE"\\ | + | exec 1>"$LOGFILE" |
exec &>"$LOGFILE" | exec &>"$LOGFILE" | ||
Строка 21: | Строка 17: | ||
</code> | </code> | ||
- | Тем самым весь вывод от утилиты переводится в файл. Это затрудняет работу с утилитами, потому что при запуске из консоли не увидим вывода и ошибок при запуске. | + | Тем самым весь вывод переводится в файл. Это затрудняет работу, потому что при запуске из консоли не увидим вывода и ошибок при запуске. |
- | Для исправления потребовалось из init - скрипта вывод утилит перенаправлять в лог. | + | **Исправление** Требуется перенаправлять вывод при запуске утилиты. При этом требуется выводить код возврата, если потребуется выяснить причины, то уже будет понятно, что надо смотреть в лог. |
- | /etc/rc.d/init.d/reductor | + | **/etc/rc.d/init.d/reductor** |
- | <code> | + | <code bash> |
- | #!/bin/bash\\ | + | #!/bin/bash |
- | . /cfg/config\\ | + | . /cfg/config |
- | . /etc/rc.d/init.d/functions\\ | + | . /etc/rc.d/init.d/functions |
. /usr/local/Reductor/etc/const | . /usr/local/Reductor/etc/const | ||
- | prog="reductor"\\ | + | prog="reductor" |
- | \\ | + | |
start(){ | start(){ | ||
- | + | local RC | |
- | echo -n $"Starting $prog: "\\ | + | echo -n $"Starting $prog: " |
- | /usr/local/Reductor/bin/start.sh\\ | + | /usr/local/Reductor/bin/start.sh &>> $LOGFILE |
- | /usr/local/Reductor/bin/start.sh &>> $LOGFILE\\ | + | RC=$? |
- | }\\ | + | if [ $RC != 0 ];then |
- | \\ | + | echo -e "\nПри остановке редуктора произошли ошибки." |
- | stop(){ | + | echo "Выяснить причины можно в $LOGFILE" |
- | + | fi | |
- | echo -n $"Shutting down $prog: "\\ | + | return $RC |
- | /usr/local/Reductor/bin/stop.sh\\ | + | |
- | /usr/local/Reductor/bin/stop.sh &>> $LOGFILE\\ | + | |
} | } | ||
+ | ... | ||
</code> | </code> | ||
+ | ~~OWNERAPPROVE~~ /*Не удаляйте эту строку и ниже!*/ | ||
+ | |||
+ | {(rater>id=1|name=Прочитал_правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах|type=vote|trace=user|tracedetails=1)} | ||