Como posso conhecer o caminho absoluto de um processo em curso?
Se tenho múltiplas cópias da mesma aplicação no disco, e apenas uma está a correr, como posso ver com ps
, como posso conhecer o caminho absoluto para o distinguir das outras?
Se tenho múltiplas cópias da mesma aplicação no disco, e apenas uma está a correr, como posso ver com ps
, como posso conhecer o caminho absoluto para o distinguir das outras?
ps auxwwwe
Fonte: https://serverfault.com/questions/62322/getting-full-path-of-executables-in-ps-auxwww-output
lsof é uma opção. Pode tentar algo como abaixo:
lsof -p PROCESS_ID
Isto irá listar todos os ficheiros abertos pelo processo, incluindo a localização real do executável. É então possível adicionar mais alguns awk, cut, grep, etc. para descobrir a informação que se procura.
Como exemplo, executei os seguintes comandos para identificar de onde veio o meu processo ‘java’:
lsof -p 12345 | awk ‘{print $NF}’ | grep ‘java$’
A resposta rápida é usar ps
com opções ou a informação do sistema de ficheiros /proc
. Isso usualmente funcionará, mas não é garantido. Em geral, não há uma resposta definitiva e garantida. Por exemplo, e se o ficheiro de execução for eliminado durante a execução, para que não haja caminho para o ficheiro?
Ver a FAQ Unix para um pouco mais de detalhe, particularmente as perguntas 4.3 e 4.4.