Вы не сделали ничего плохого, mbuffer
повторно открывает / dev / tty
, если он не может читать из своей стандартной ошибки , нарушая ваше перенаправление.
Вы можете использовать параметр -q
, чтобы отключить вывод состояния. Согласно документации, вы можете использовать -l
для записи статуса в файл с
mbuffer -m 60M -f -o /tmp/temp_video.h264 -l errors.txt &
, но журнал статуса содержит ошибки: он всегда переходит к стандартной ошибке , а не к журналу .
Вот как это исправить.
Загрузите исходный код пакета
apt-get source mbuffer
Добавьте патч (для этого требуется пакет quilt
)
cd mbuffer-20161115
одеяло новый 13-status-log.patch
одеяло добавить mbuffer.c
Отредактируйте mbuffer.c
и измените строку 461 (в Debian 8) или 472 (в Debian 9) на
nw = write (Log, buf, strlen (buf));
Сохранить патч
обновление квилта
Перестройте пакет (для этого требуются пакеты dpkg-dev
и devscripts
)
dch -n «Исправить журнал состояния, чтобы учесть параметр -l».
dch -r игнорируется
dpkg-buildpackage -us -uc
(если dpkg-buildpackage
жалуется на отсутствие зависимостей, установите их и повторите попытку)
Установите обновленный пакет
sudo dpkg -i ../mbuffer_*-?.1_*. деб
Похоже на несложную работу для sed
:
docker port <container-name> | sed 's/^.*:\([0-9]*\)$/\1/'
Или, если хотите, awk
:
docker port <container-name> | awk -F':' '{print $NF}'
docker port <container-name> | while read -r line;do echo ${line##*:};done