linux ps show em que o processo está sendo executado

3

É possível usar ps para determinar de onde um processo está sendo executado?

Eu tenho dois aplicativos, ambos são idênticos e estão sendo executados em diretórios paralelos, como /app1/start.sh e /app2/start.sh . Se eu executar ps -ef , então não consigo dizer a diferença entre os dois

Usando ps (ou alternativa), como posso saber se o PID 123 pertence ao app1?

    
por user155695 10.11.2010 / 10:31

3 respostas

5

Alguns exemplos:

Lista de processos atual apresentada em hierarquia em árvore e saída ampla (mostrando os argumentos completos da linha de comando e não cortando-os após caracteres X) ps -auxwwwf

Comando pstree , mostra todos os processos e seus ids de processo: pstree -ap

Ou, se você estiver interessado apenas em PIDs: pgrep -f app1 listaria todos os PIDs para os processos que correspondem ao padrão app1 em algum lugar ao longo de seu nome, argumentos de linha de comando ou caminho.

    
por 10.11.2010 / 11:07
3

Veja também o sistema de arquivos /proc/ . Em /proc/*pid* você tem:

  • exe , que é um link simbólico para o binário executável. Em caso de script, este é o interpretador (/ bin / bash) não o script.
  • %código% que é um link simbólico para o atual diretório do processo
  • %código% que é um NUL separado representação da linha de comando

você também tem uma lista de descritores de arquivos atuais. Eu acho cwd útil em scripts bash - é um symlink para o script em si.

ps procura em / proc / para encontrar informações, então pode haver algum encantamento mágico de sinalizadores que mostre alguns deles - veja em cmdline

    
por 10.11.2010 / 16:27
1

Tente

ps auxf

Isso lhe dá a hierarquia dos processos.

    
por 10.11.2010 / 10:43

Tags