파일을 여는 프로세스 수를 알 수 있는 방법이 있습니까?

파일을 여는 프로세스 수를 알 수 있는 방법이 있습니까?

현재 Linux에서 파일을 여는 프로세스 수를 알 수 있는 방법이 있습니까?

답변1

lsof는 다음을 수행할 수 있습니다.

lsof <filename>

예를 들어:

┌─[root@Fedora]─[~]─[02:39 pm]
└─[$]› lsof scripts/network_menu.sh
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
less      26419 root    4r   REG  253,1    67271 931810 scripts/network_menu.sh
network_m 26572 root  255r   REG  253,1    67271 931810 scripts/network_menu.sh

위의 첫 번째 인스턴스는 루트로 파일에서 "less"를 실행하는 것이고, 두 번째 인스턴스는 루트로 실행되는 스크립트입니다.

답변2

명령을 사용해보십시오lsof /path/filename

파일을 사용하는 프로세스의 세부 정보가 표시됩니다.

답변3

lsof해당 시점에 어떤 프로세스가 파일을 열어 놓았는지 알 수 있지만 일정 기간 동안 몇 개의 프로세스가 파일을 열어 놓았는지 확인하려면 inotifywait또는 를 사용할 수 있습니다 inotifywatch.

모니터 모드에서는 지정된 파일에 대한 이벤트를 지속적으로 보고하도록 inotifywait를 설정할 수 있습니다.

inotifywait -m -r /lib*

inotifywatch는 시간 경과에 따른 이벤트 요약을 제공할 수 있습니다.

inotifywatch -t 10 -r /lib*

프로세스에 파일 열기를 요청하므로 -e openOPEN 이벤트만 표시하도록 출력을 제한하는 옵션을 추가할 수 있습니다.

inotifywait -e open -m -r /lib*

관련 정보