在 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”工作正常...
无论如何,补丁已经发布,线程数又回到了几百个,到目前为止没有奇怪的行为。
谢谢,布鲁斯