Estou executando uma simulação que é comandada para começar em algum diretório, mas não lembro de qual diretório comandei a simulação. Estou usando python para executar a simulação, então
ps aux | grep PID
mostra apenas onde o programa em execução está localizado. (/usr/bin/python). Porém, quero saber onde o comando é operado desde o ponto inicial, onde está localizado o arquivo que estou executando.
Eu apreciaria muito qualquer comentário útil!
Obrigado :)
Responder1
Talvez você queira usar o history
comando para ver qual comando você realmente usou?
Responder2
Para ver o caminho do script python, normalmente você pode vê-lo com ps
(usando a w
opção , wide, se necessário):
~% ps ugxw | grep python
romano 2136 0.0 0.2 10524 4132 ? S 09:13 0:00 python /home/romano/software/wallpap/bg_slideshow.py
romano 5839 0.0 0.0 4440 832 pts/1 S+ 10:00 0:00 grep python
Por exemplo, o processo 2136 é o script /home/romano/software/wallpap/bg_slideshow.py
. Se você quiser saber qual é o diretório de trabalho do processo, faça
~% ls -l /proc/2136/cwd
lrwxrwxrwx 1 romano romano 0 Nov 11 10:04 /proc/2136/cwd -> /home/romano
O processo está sendo executado /home/romano
como seu diretório atual.
No arquivo /proc/2136/cmdline
há a especificação completa da linha de comando --- a mesma que você vê em ps
, com os comandos e argumentos separados por bytes com valor 0 (para preservar os espaços). Você pode vê-lo em seu terminal com
% cat /proc/2136/cmdline | tr "\0" " "
python /home/romano/software/wallpap/bg_slideshow.py %
onde "tr" imprime um espaço para cada caractere "nul" encontrado. (o% falso no final é devido ao arquivo não terminar com um caractere de nova linha).
O sistema de arquivos /proc é uma ferramenta realmente útil --- a documentação completa é um pouco "difícil", mas geralmente é útil ter um link para ela:https://www.kernel.org/doc/Documentation/filesystems/proc.txt
Responder3
Use o which
comando. Por exemplo, which ifconfig
exibe a localização do comando ifconfig.