为什么 bash 命令有时不返回输出?

为什么 bash 命令有时不返回输出?

在 bash shell 中,如果我执行任何命令(例如“who”),很多时候它不会显示任何结果,但是当我下次执行任何其他命令时,将包含前一个命令的输出。

例如:

    > 谁
    > ls -l
    u811217 pts/0 7月 7日 10:36 (pcp830738pcs.ny.abc.com)
    f122260 pts/1 6月29日 18:07 (wnnypbh82bqjl1.ny.abc.com)
    hpmonpd pts/2 7 月 6 日 15:17 (vsin0vw342.svr.us.abc.net)
    共 10536
    -rwxr--rx 1 e252642 pbdvdp 75 7月 6日 12:26 runboth.sh
    -rwxr--rx 1 e252642 pbdvdp 19 七月 6 12:28 runtop.sh
    -rwxr--rx 1 e252642 pbdvdp 108 7月 6日 12:29 runvmstat.sh

一开始它看起来像某种“不刷新缓冲区”的问题,但有时结果是无序接收的:例如:

    > 谁
    > ls -l
    共 10536
    -rwxr--rx 1 e252642 pbdvdp 75 7月 6日 12:26 runboth.sh
    -rwxr--rx 1 e252642 pbdvdp 19 七月 6 12:28 runtop.sh
    -rwxr--rx 1 e252642 pbdvdp 108 7月 6日 12:29 runvmstat.sh
    u811217 pts/0 7月 7日 10:36 (pcp830738pcs.ny.abc.com)
    f122260 pts/1 6月29日 18:07 (wnnypbh82bqjl1.ny.abc.com)
    hpmonpd pts/2 7 月 6 日 15:17 (vsin0vw342.svr.us.abc.net)

其他值得关注的事项包括:

  • 我无法让这种行为发生在内置 bash 命令(如“history”或“dirs”)中。
  • 我无法使用‘ksh’来实现这种行为。

此简单情况仅作为示例。问题发生在文件重定向等情况下,并且当它发生在执行的关键脚本中时会导致严重问题。

操作系统详细信息:redhat linux 2.6.9-67.0.4.ellargesmp

任何帮助或建议都将不胜感激。谢谢。

答案1

谢谢您的帮助。看来罪魁祸首是一个线程内存泄漏的进程,线程数达到 25,000+。这个问题有很多奇怪的地方,我不知道从哪里开始。例如,“ksh”工作正常...

无论如何,补丁已经发布,线程数又回到了几百个,到目前为止没有奇怪的行为。

谢谢,布鲁斯

相关内容