Encontre processos que tenham um arquivo aberto sem lsof ou fusor

2

Estou trabalhando em um Linux (Scientific Linux CERN SLC release 6.9 (Carbon)) máquina na qual não consigo instalar programas e na qual os comandos lsof ou fuser não estão disponíveis.

Estou tentando remover um arquivo NFS neste computador, mas continuo recebendo o erro Device or resource busy , portanto, gostaria de descobrir qual processo (suspeito que possa ser um que comecei anteriormente com nohup ) ainda tem um descritor de arquivo para este arquivo.

Como posso conseguir isso?

    
por Peter 01.07.2018 / 12:15

1 resposta

5

Use /proc/<PID>/fd .

Exemplo ... queremos descobrir qual pid tem /var/log/audit/audit.log aberto. fuser nos diz que é pid 255.

[root@instance-1 ~]# fuser /var/log/audit/audit.log
/var/log/audit/audit.log:   255
[root@instance-1 ~]#

Portanto, usar uma solução que não seja fuser :

[root@instance-1 ~]# find /proc/*/fd -ls|grep /var/log/audit/audit.log
188652    0 l-wx------   1 root     root           64 Jul  1 06:22 /proc/255/fd/5 -> /var/log/audit/audit.log
[root@instance-1 ~]#
    
por 01.07.2018 / 12:27