본문 바로가기

Linux

[linux] 특정 프로세스가 사용중인 파일 확인 (lsof)

반응형

 

리눅스에서 특정 프로세스가 사용중인 파일을 확인하고 싶을때는 lsof 명령어를 사용하면 된다.

 

만약 파이썬 스크립트 중 아래 test.py의 위치를 알고 싶다고 하자.

$ ps -ef | grep python
root      4198     1  0  2021 ?        00:00:00 python test.py
root      8178     1  0 Jan31 ?        00:00:00 python -u runner_best.py

 

아래와 같이 lsof -p 에 프로세스 숫자를 주면 해당 프로세스가 사용 중인 파일 목록을 볼수 있다. 

# lsof -p 4198
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
python  4198 root  cwd    DIR  253,1     4096 424809 /root/test
python  4198 root  rtd    DIR  253,1     4096      2 /
python  4198 root  txt    REG  253,1  3492656  22482 /usr/bin/python2.7 (deleted)
python  4198 root  DEL    REG  253,1             534 /usr/lib/locale/locale-archive
python  4198 root  DEL    REG  253,1            1336 /lib/x86_64-linux-gnu/libm-2.23.so
python  4198 root  DEL    REG  253,1            1418 /lib/x86_64-linux-gnu/libz.so.1.2.8
python  4198 root  DEL    REG  253,1            1411 /lib/x86_64-linux-gnu/libutil-2.23.so
python  4198 root  DEL    REG  253,1            1309 /lib/x86_64-linux-gnu/libdl-2.23.so
python  4198 root  DEL    REG  253,1            1295 /lib/x86_64-linux-gnu/libc-2.23.so
python  4198 root  DEL    REG  253,1            1382 /lib/x86_64-linux-gnu/libpthread-2.23.so
python  4198 root  DEL    REG  253,1            1271 /lib/x86_64-linux-gnu/ld-2.23.so
python  4198 root    0w   CHR    1,3      0t0      6 /dev/null
python  4198 root    1w   REG  253,1  8879116 424812 /root/test/log.log
python  4198 root   19u   CHR    5,2      0t0     87 /dev/ptmx

 

위에서 볼수 있듯, 해당 프로세스는 /root/test 하위의 test.py를 사용한다는 것을 알 수 있다. 

반응형