O que determina o nome do processo em ps aux?

1

Estou tentando rastrear esse script chamado ./launch.sh , que na minha máquina está atualmente em um loop infinito no qual ele chama um programa Java, cai imediatamente e depois dorme por 3 segundos.

ps aux inclui:

   31337  0.1  0.1  19716  2180 pts/3    S+   15:13   0:00 bash   
root     31621  0.3  0.3  22912  5492 pts/4    Ss+  15:15   0:00 -bash
root     31810  0.0  0.0   5872   604 pts/1    S+   15:16   0:00 sleep 3
root     31811  0.0  0.0  16872  1268 pts/2    R+   15:16   0:00 ps aux

Além de muitos -bash .

Meu script de lançamento foi chamado via ./launch.sh . Este script não começa com um shebang.

A versão do Linux é a seguinte:

Linux version 3.2.0-23-virtual (buildd@crested) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu4) ) #36-Ubuntu SMP 

Então, basicamente, perguntando por que launch.sh não aparece em ps aux ou se há uma maneira de encontrá-lo mais facilmente na lista de processos. Levei um tempo para perceber que simplesmente tinha essa corrida em primeiro plano em algum lugar.

    
por djechlin 12.04.2013 / 17:23

1 resposta

2

Um script invocado como ./launch.sh será simplesmente mostrado como bash (ou qualquer que seja o seu shell padrão) na saída do ps.

Para descobrir se o PID está associado ao seu script, você pode usar o lsof , que lista os processos que abriu o arquivo.

Exemplo de saída:

$ lsof launch.sh 
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
bash    17085 dennis  254r   REG    8,1       28 2500332 launch.sh
$
$ ps up 17085
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dennis   17085  0.0  0.1  28292  4260 pts/2    S+   11:28   0:00 bash
    
por 12.04.2013 / 17:33

Tags