2018-11-21 Перенаправление Всего Вывода В Утилитах
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах [21.11.2018 07:28] николай_глазов Approved(николай_глазов 2018/11/21 07:29) |
правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах [26.11.2018 04:46] николай_глазов Approved(николай_глазов 2018/11/26 04:46) |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
{(rater>id=1|name=Прочитал_правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах|type=vote|trace=user|tracedetails=1)} | {(rater>id=1|name=Прочитал_правила_разработки:как_не_надо_делать:2018-11-21_перенаправление_всего_вывода_в_утилитах|type=vote|trace=user|tracedetails=1)} | ||
- | **Что произошло:** Нельзя полностью перенаправлять вывод утилит в лог. Это нарушение strongbash020.\\\\ | + | **Что произошло:** Нельзя полностью перенаправлять вывод утилит в лог. Это нарушение 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: | Строка 21: | ||
</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(){ | ||
+ | echo -n $"Starting $prog: " | ||
+ | /usr/local/Reductor/bin/start.sh &>> $LOGFILE | ||
+ | } | ||
- | echo -n $"Starting $prog: "\\ | ||
- | /usr/local/Reductor/bin/start.sh\\ | ||
- | /usr/local/Reductor/bin/start.sh &>> $LOGFILE\\ | ||
- | }\\ | ||
- | \\ | ||
stop(){ | stop(){ | ||
- | + | echo -n $"Shutting down $prog: " | |
- | echo -n $"Shutting down $prog: "\\ | + | /usr/local/Reductor/bin/stop.sh &>> $LOGFILE |
- | /usr/local/Reductor/bin/stop.sh\\ | + | |
- | /usr/local/Reductor/bin/stop.sh &>> $LOGFILE\\ | + | |
} | } | ||
- | |||
</code> | </code> | ||