Como descobrir em qual pasta um processo está sendo executado?

15

No * nix, você pode usar pspara ver qual processo está em execução. Porém, se um executável possui vários arquivos homônimos em um dispositivo, não conseguimos descobrir de onde ele foi chamado.

Isso é um pouco diferente da minha última pergunta sobre esse assunto. Como posso saber o caminho absoluto de um processo em execução?

Jader Dias
fonte

Respostas:

20

Tente o seguinte:

ls -l /proc/<PID>/cwd
CUBO
fonte
7

Derivado da resposta do HUB:

readlink /proc/<PID>/cwd

ou mesmo

readlink /proc/$(pgrep <program_name>)/cwd
jpaugh
fonte
+1 A saída de readlinkpode ser analisada melhor em um script.
Marco Leogrande
2

Você não pode dizer que um processo foi invocada a partir , somente onde ele atualmente é . Veja o cwdlink ("diretório de trabalho atual") em vez de exe.

Ignacio Vazquez-Abrams
fonte
1

Eu acho que esse comando deve funcionar. É um pouco de solução alternativa, mas funciona pelo menos na minha máquina.

para strlist em $ (ps e PID); faça se [$ {strlist: 0: 4} = "PWD ="]; então echo $ {strlist: 4}; fi; done

Enrico
fonte
0

Quando eu corri

ps auxwwwe | grep executableName > dump
vim dump

Consegui procurar a parte do caminho que conhecia e descobri a partir de qual subdiretório o comando foi chamado.

Jader Dias
fonte