Como eu sei o local em que um processo foi chamado

1

Eu executei uma configuração diferente do mesmo script em pastas diferentes (por clonagem estrita) e gostaria de saber se é possível, a partir de um terminal externo, saber qual é a pasta de origem do processo de execução?

I.E.

  • Eu executo um script python de 3 pastas: pyjournal1/source/script.py , pyjournal2/source/script.py e pyjournal3/source/script.py
  • Eu assisto em htop e todos parecem iguais " python3 script.py ", mas não consigo reconhecer qual deles é.
  • realpath of readlink me dá, como você sabe, o caminho para o Python, não para a "pasta de chamada"

Alguma ideia?

Muito obrigado Edouard

    
por Edouard Batot 19.07.2017 / 19:17

1 resposta

2

Primeiro, pegue o PID do processo:

$ pgrep <proccess>

Então você pode usar o pwdx:

$ pwdx <PID>

O /proc way seria inspecionar o link exe no diretório correspondente ao pid.

Vamos dar um exemplo com update-notifier :

Encontre o pid, que é 15421 neste exemplo:

egil@gud:~$ ps x | grep update-notifier
 2405 pts/4    S+     0:00 grep update-notifier
15421 ?        Sl     0:00 update-notifier

Procure o link simbólico:

egil@gud:~$ file /proc/15421/exe
/proc/15421/exe: symbolic link to '/usr/bin/update-notifier'

Créditos para: link

    
por 19.07.2017 / 19:20