Alguém pode explicar esse estranho comportamento ps?

1

Duas questões:

  1. pf -fU <user> não mostrando processos específicos do usuário enquanto ps -ef | grep <user> ou ps aux pode.

  2. pstree -p <pid> , onde pid é aquele processo específico que mencionei acima, pode dar saída dos processos filhos, enquanto ps -ef | grep <childpid> não mostra nenhum.

E esse comportamento estranho é visto apenas para processos relacionados a esse serviço sge específico que foi iniciado usando o comando service e não para qualquer outro processo.

[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 ~]#

Então, tentei iniciar outros processos e está funcionando:

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 ~]#

Editar 1:

Ok, ps -fu <username> fornece resultado. Parece que a diferença está em id de usuário real e userid efetivo . Sim, root é o usuário real neste caso.

Mas alguma explicação para o segundo problema? pstree mostrando os processos filhos enquanto ps -ef não faz?

Editar 2:

Ok, é algo relacionado ao TGID.

    
por GP92 21.03.2017 / 18:13

1 resposta

2

Isso responde claramente: link

Aqui, no meu caso, todos os processos filhos exibidos são threads e, portanto, não podem ser vistos em ps -ef output, mas apenas pstree.

    
por 21.03.2017 / 18:31