현재 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 open
OPEN 이벤트만 표시하도록 출력을 제한하는 옵션을 추가할 수 있습니다.
inotifywait -e open -m -r /lib*