Encontre o local onde o processo foi iniciado no linux

4

Se eu tiver uma saída do ps como a seguinte, existe alguma maneira de determinar onde 'blah' está no sistema de arquivos? Para minha situação específica, o -p especifica em qual porta o aplicativo deve ser executado.

user 22913 22470  0 09:58 ?        00:00:06 ./blah -p 12345

A minha pergunta é basicamente se é possível ou não encontrar a localização de um executável, dado o PID ou a porta da aplicação. A distro usada é Redhat.

    
por bcasp 18.12.2009 / 17:00

4 respostas

6

Algum destes fornece informações?

ps -ef

ps -eLf

ps axms

Ou talvez

ps -o cmd = -p $ PID

Isso pode ser mais útil:

readlink -f / proc / $ PID / exe

?

    
por 18.12.2009 / 17:04
5

Como Bart sugeriu,

readlink -f /proc/$PID/exe

Você deve dar sua resposta.

    
por 18.12.2009 / 17:13
5

Para construir o material do readlink, outra maneira pode ser readlink -f /proc/$PID/cwd . Isso exibirá o diretório de trabalho atual de um processo, que pode ser útil se você tiver executado um script bash, já que o link exe é, em seguida, / bin / bash, com um argumento de ./blah.

E como um pouco mais de informação aleatória, você pode simplesmente fazer um cd para / proc / $ PID. Haverá links simbólicos para o cwd e exe, como mencionado, bem como onde o diretório raiz do processo é (útil se o chrooted) ls -l mostrará onde eles estão apontando, o que é essencialmente o que o readlink está fazendo.

    
por 18.12.2009 / 17:45
0
sudo /usr/sbin/lsof -p 22913
    
por 18.12.2009 / 19:40

Tags