Como posso obter nomes de arquivos abertos por um processo?

1

Eu quero listar todos os nomes de arquivos abertos pelo processo init. Eu sei sobre o diretório /proc/PID/fd . Mas isso fornece apenas descritores de arquivos. Como posso obter nomes de arquivos da lista de descritores de arquivos?

    
por techfun 12.02.2014 / 20:09

1 resposta

2

Use lsof para listar arquivos abertos de um processo, no seu caso "init":

$ sudo lsof -ln -p 'pgrep init'
COMMAND PID     USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
init      1        0  cwd    DIR    8,1     4096      2 /
init      1        0  rtd    DIR    8,1     4096      2 /
init      1        0  txt    REG    8,1    36992 354775 /sbin/init
init      1        0  mem    REG    8,1    14768 354922 /lib/x86_64-linux-gnu/libdl-2.13.so
init      1        0  mem    REG    8,1  1599504 350331 /lib/x86_64-linux-gnu/libc-2.13.so
init      1        0  mem    REG    8,1   126232 354818 /lib/x86_64-linux-gnu/libselinux.so.1
init      1        0  mem    REG    8,1   261184 354836 /lib/x86_64-linux-gnu/libsepol.so.1
init      1        0  mem    REG    8,1   136936 354986 /lib/x86_64-linux-gnu/ld-2.13.so
init      1        0   10u  FIFO   0,14      0t0   3054 /run/initctl
    
por 12.02.2014 / 20:13