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