Você pode usar lsof
(disponível para praticamente qualquer variante do Unix, mas muitas vezes não faz parte da instalação padrão ) para listar todos os arquivos que um processo está usando. “Usando” inclui descritores de arquivos abertos, bem como conceitos relacionados, como o executável que o processo está executando. O executável tem txt
na coluna FD, para obscuros .
$ lsof -p1234 | grep txt
a.out 1234 user15964 txt REG 253,0 34567 /path/to/a.out
(resultado inventado)
No Solaris e Linux, há uma maneira mais direta: o proc filesystem fornece informações sobre cada processo, incluindo qual executável está sendo executado. (No Linux, pelo menos, é onde lsof
obtém suas informações.)
$ ls -l /proc/1234/exe
lrwxrwxrwx 1 root root 0 Feb 30 34:56 /proc/1234/exe -> /path/to/a.out
Se você está procurando um processo em execução um determinado executável, execute fusor .
$ fuser /path/to/a.out
/path/to/a.out: 1234e 1239e