이 이상한 ps 동작을 설명할 수 있는 사람이 있나요?

이 이상한 ps 동작을 설명할 수 있는 사람이 있나요?

두 가지 질문:

  1. pf -fU <user>ps -ef | grep <user>특정 사용자 프로세스를 표시하지 마십시오 ps aux.

  2. pstree -p <pid>, 여기서 pid는 위에서 언급한 특정 프로세스이며 하위 프로세스의 출력을 제공할 수 있지만 ps -ef | grep <childpid>출력은 표시하지 않습니다.

이 이상한 동작은 service 명령을 사용하여 시작된 특정 sge 서비스와 관련된 프로세스에서만 발생하며 다른 프로세스에서는 발생하지 않습니다.

[root@myserver ~]# ps -fU sgeadmin
UID        PID  PPID  C STIME TTY          TIME CMD
[root@myserver ~]# ps -ef | grep sgeadmin
sgeadmin  1754     1  0 Jan21 ?        00:16:36 /ge2011.11/bin/linux-x64/sge_execd
root      4097  3982  0 18:52 pts/0    00:00:00 grep sgeadmin
sgeadmin 27248     1  0 16:59 ?        00:00:03 /ge2011.11/bin/linux-x64/sge_qmaster
[root@myserver ~]# pstree -paA 27248
sge_qmaster,27248
  |-{sge_qmaster},27255
  |-{sge_qmaster},27256
  |-{sge_qmaster},27257
  |-{sge_qmaster},27258
  |-{sge_qmaster},27263
  |-{sge_qmaster},27264
  |-{sge_qmaster},27265
  |-{sge_qmaster},27266
  |-{sge_qmaster},27267
  |-{sge_qmaster},27268
  |-{sge_qmaster},27269
  `-{sge_qmaster},27289
[root@myserver ~]# ps -ef | grep -E '27255|27256|27257|27258|27263|27264|27265|27266|27267|27268|27269|27289'
root      4274  3982  0 18:53 pts/0    00:00:00 grep -E 27255|27256|27257|27258|27263|27264|27265|27266|27267|27268|27269|27289
[root@myserver ~]#

그래서 다른 프로세스를 시작해 보았는데 작동합니다.

myserver @ /homes/sgeadmin : sleep 1000 &
[1] 4528
myserver @ /homes/sgeadmin : ps -fU sgeadmin
UID        PID  PPID  C STIME TTY          TIME CMD
sgeadmin  4482  4481  0 18:57 pts/0    00:00:00 -tcsh
sgeadmin  4528  4482  0 18:57 pts/0    00:00:00 sleep 1000
sgeadmin  4529  4482  0 18:57 pts/0    00:00:00 ps -fU sgeadmin
myserver @ /homes/sgeadmin : exit
logout
[root@myserver ~]# ps -fU sgeadmin
UID        PID  PPID  C STIME TTY          TIME CMD
sgeadmin  4528     1  0 18:57 pts/0    00:00:00 sleep 1000
[root@myserver ~]#

편집 1:

좋습니다. ps -fu <username>결과는 다음과 같습니다. 차이점이 있는 것 같습니다.실제 사용자 ID그리고유효한 사용자 ID. 예, 이 경우 루트는 실제 사용자입니다.

그런데 두 번째 질문에 대한 설명이 있나요? pstree표시하지 않고 하위 프로세스를 표시하시겠습니까 ps -ef?

편집 2:

음, 이것은 TGID와 관련이 있습니다.

답변1

이 문장은 매우 명확하게 대답합니다.https://stackoverflow.com/questions/9305992/linux-threads-and-process

내 경우 표시된 모든 하위 프로세스는 스레드이므로 출력에는 표시되지 않고 ps -efpstree에만 표시됩니다.

관련 정보