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

Bru*_*uce 6 linux bash redhat-enterprise-linux

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

例如:

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

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

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

其他感兴趣的笔记是:

  • 对于内置的 bash 命令,例如“历史记录”或“目录”,我无法实现这种行为。
  • 我无法使用“ksh”来实现这种行为。

以这个简单的案例为例。该问题发生在文件重定向等方面,并且在执行的关键脚本中发生时会导致重大问题。

操作系统详情:redhat linux 2.6.9-67.0.4.ellargesmp

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

Bru*_*uce 1

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

不管怎样,补丁已经发布,线程数又回到了几百个,到目前为止还没有奇怪的行为。

谢谢,布鲁斯