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