我在docker映像中使用了watch
命令(在shell脚本中)。
命令:
watch -d -t -g ls -la ${DIR_TO_WATCH} && sleep 5 && ${COMMAND} | tee
此命令正在监视目录,如果目录结构发生任何更改,我们将执行某些操作。
我正在掌舵图中使用此docker映像。 现在,当我部署图表并检查该Pod的日志时,我的终端坏了,它将不再对用户友好。
命令:
kubectl logs -f pod-name -n name-space
此后,我们需要重置终端设置以使终端正常运行。
有什么办法可以防止这种情况发生?
最好的问候, 阿克沙特
答案 0 :(得分:0)
通过将watch
的输出发送到/dev/null
来解决此问题。
watch -d -t -g ls -la ${DIR_TO_WATCH} > /dev/null && sleep 5 && ${COMMAND} | tee
根据我的理解,终端损坏的原因是:
两个命令的日志(来自watch
和${COMMAND}
的日志)同时显示在同一终端上,这导致在默认终端上创建一个新终端(我不是确定如何操作),导致默认终端中断。
尽管${COMMAND}
日志对我来说至关重要,但是我不需要查看或监视watch
中的日志。因此,我将watch
的日志输出发送到/dev/null
,它解决了我的问题。
如果我的理解或方法错误,请纠正我。
谢谢。