I am LAZY bones ? all linux

记一段聊天记录

目前还看不太懂 r0bertz 说的啥…先放这儿..以后看…
起因是我在问下面两个命令输出的结果为什么不一样.

  1. [ucsp@ucsp-1 ini]$ pgrep scf_exs
  2. 30507
  3. 30512
  4. 30513
  5. 30514
  6. 30518
  7. [ucsp@ucsp-1 ini]$ ps -A |grep scf_exs
  8. 30507 ?        00:00:05 scf_exs
  9. [ucsp@ucsp-1 ini]$

为什么这两个命令看到的不一样?

<r0bertz> bones7456, 执行 /lib/libc.so.6

  1. [ucsp@ucsp-1 ini]$ /lib/libc.so.6
  2. GNU C Library stable release version 2.3.2, by Roland McGrath et al.
  3. Copyright (C) 2003 Free Software Foundation, Inc.
  4. This is free software; see the source for copying conditions.
  5. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
  6. PARTICULAR PURPOSE.
  7. Compiled by GNU CC version 3.2.2 20030222 (Red Hat Linux 3.2.2-5).
  8. Compiled on a Linux 2.4.20 system on 2003-03-13.
  9. Available extensions:
  10.         GNU libio by Per Bothner
  11.         crypt add-on version 2.1 by Michael Glad and others
  12.         linuxthreads-0.10 by Xavier Leroy
  13.         BIND-8.2.3-T5B
  14.         libthread_db work sponsored by Alpha Processor Inc
  15.         NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
  16. Thread-local storage support included.
  17. Report bugs using the `glibcbug' script to &lt;bugs@gnu.org&gt;.
  18. [ucsp@ucsp-1 ini]$

<r0bertz> Native POSIX Threads Library by Ulrich Drepper et al
<r0bertz> bones7456, scf_exs 这是个什么东西?
<r0bertz> 商业软件?
<bones7456> r0bertz: 是的,我们公司自己写的…
<r0bertz> bones7456, 你用ps -eLf | grep 试试
<r0bertz> linuxthreads-0.10 by Xavier Leroy
<r0bertz> 哈哈
<r0bertz> bones7456, 这是典型的linuxthreads的特征
<bones7456> r0bertz: 啊? 就是线程?
<bones7456> r0bertz: pgerp能看到线程号?
<r0bertz> bones7456, 在使用linuxthreds线程库的glibc的机器上
<r0bertz> 其实直到现在,用户层线程和内核线程在linux里还是1:1关系
<r0bertz> 也就是nptl是1:1模型
<r0bertz> 但是
<r0bertz> 在nptl里,posix threading semantics是被严格遵守的
<r0bertz> 该是线程的你用看进程的东西,你看不到
<bones7456> 这么复杂?呵呵
<r0bertz> linuxthreads不是这样的
<r0bertz> linuxthreads里每个进程专门有一个管理线程
<r0bertz> 和posix语义有差异
<bones7456> r0bertz: 就是说 pgrep 能看到不同的线程号,而ps只能看到进程号?
<r0bertz> junmin, 似乎没见过大写的
<r0bertz> bones7456, 不能这么说
<r0bertz> 有前提
<r0bertz> 看线程库的实现种类
<r0bertz> nptl里都是只能看进程
<r0bertz> 当然加了适当的参数,ps也能看线程
<bones7456> r0bertz: 那在同一台机器上的 pgrep 和 ps 也有差异啊,他们用的不是一个库?
<r0bertz> bones7456, 这个东西和内核也有关系
<bones7456> r0bertz: 对了,刚那 ps -eLf 执行不了
<r0bertz> bones7456, 你的服务器太旧了
<r0bertz> 还是2.4
<r0bertz> 2.4上没有nptl线程库
<r0bertz> 唯一的例外是rh9
<bones7456> r0bertz: 服务器是 Red Hat Linux release 9
<r0bertz> …
<bones7456> r0bertz: 就是 rh9 啊…
<r0bertz> 你确定?

  1. [ucsp@ucsp-1 ini]$ cat /etc/issue
  2. Red Hat Linux release 9 (Shrike)
  3. Kernel \r on an \m
  4. [ucsp@ucsp-1 ini]$ uname -a
  5. Linux ucsp-1 2.4.20-8smp #1 SMP Thu Mar 13 17:45:54 EST 2003 i686 i686 i386 GNU/Linux

<bones7456> 至少这个是这样输出的
<r0bertz> /lib/tls/libc.so.6?

  1. [ucsp@ucsp-1 ini]$ /lib/tls/libc.so.6
  2. GNU C Library stable release version 2.3.2, by Roland McGrath et al.
  3. Copyright (C) 2003 Free Software Foundation, Inc.
  4. This is free software; see the source for copying conditions.
  5. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
  6. PARTICULAR PURPOSE.
  7. Compiled by GNU CC version 3.2.2 20030222 (Red Hat Linux 3.2.2-5).
  8. Compiled on a Linux 2.4.20 system on 2003-03-13.
  9. Available extensions:
  10.         GNU libio by Per Bothner
  11.         crypt add-on version 2.1 by Michael Glad and others
  12.         NPTL 0.29 by Ulrich Drepper
  13.         BIND-8.2.3-T5B
  14.         NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
  15. Thread-local storage support included.
  16. Report bugs using the `glibcbug' script to &lt;bugs@gnu.org&gt;.
  17. [ucsp@ucsp-1 ini]$

<bones7456> r0bertz: /lib/tls/libc.so.6 ==> http://paste.ubuntu.org.cn/4210
<bones7456> NPTL 0.29 by Ulrich Drepper 有这个
<r0bertz> bones7456, 这就对了
<r0bertz> 不过,我还没试过怎样指定具体使用哪个
<bones7456> r0bertz: 想起来了,这家伙就是前几天来北京讲座,你说偶像的那个,哈哈
<r0bertz> bones7456, 对阿
<bones7456> r0bertz: 强的~
<r0bertz> bones7456, ps和pgrep应该是直接到/proc里查的
<bones7456> r0bertz: 貌似 ps 很复杂,兼容了很多不同的系统…不知道有没有影响
<r0bertz> 2.4和2.6的proc里的结构不同
<r0bertz> 有关进程的信息
<bones7456> r0bertz: 你真强~这些我听着就晕了,哈…
<r0bertz> bones7456, 哪里哪里

最后修改时间: 2007年11月30日 14:18

本文章发表于: 2007年11月30日 14:18 | 所属分类:流水帐. | 您可以在此订阅本文章的所有评论. | 您也可以发表评论, 或从您的网站trackback.

发表评论