Linux 환경에서 프로그램을 사용하다 정상적으로 종료가 되지 않으면 .nfsxxxxxxxx 파일이 생기는데,
이 파일을 지우려고 rm -rf를 사용해도
rm: cannot remove '.nfsxxxxxxxxxxxxxxxxxxxxxxx' : Device or resource busy
같은 메시지가 뜨면서 파일이 삭제되지 않는 경우가 있다.
이런 파일이 있으면 이 파일이 있는 폴더도 삭제가 안되기 때문에 골치 아플 때가 많다.
이럴 때는 저 파일을 잡고 있는 process를 종료시킨 다음 삭제를 해야한다.
아래 과정대로 처리하면 된다.
1. lsof +D 커맨드로 파일을 잡고 있는 프로세스 알아내기
> lsof +D /path #지우고 싶은 파일이 들어있는 디렉토리 path
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
zsh 23678 USER1 cwd DIR 1,5 160 22548916 .
lsof 23821 USER1 cwd DIR 1,5 160 22548916 .
lsof 23822 USER1 cwd DIR 1,5 160 22548916 .nfsxxxxxxxxxxxxx
이 커맨드를 치면 .nfsxxxxxxxxxxxx 파일을 잡고 있는 프로세스의 pid를 알 수 있다. (위 예시에서는 23822)
2. 프로세스 종료
> kill 23822
kill 커맨드로 .nfsxxxxxxxxxxxxx 파일을 잡고 있는 프로세스를 종료시킨다.
3. rm .nfsxxxxxxxxxxxxxxxx
> rm .nfsxxxxxxxxxxxxxxxx
프로세스를 종료시키면 .nfsxxxxxxxxxxxxxxxx파일이 없어질수도 있는데 그대로 남아있다면 rm로 지워주면 된다.
이제는 잘 지워질 것이다.
댓글