Server/Linux
rm -rf 로 삭제되지 않을때 (Device or resource busy)
Mr콩랑
2022. 1. 7. 16:42
반응형
리눅스 파일 시스템에서 간혹가다가
rm -rf 명령어로 삭제되지 않는 경우가 있다. 나의 경우에도 이런 경우가 발생했다.
$ sudo rm -rf SPOBEE_ADMIN_LOG/
rm: cannot remove '.nfs00000000000545ce00000002': Device or resource busy
rm: cannot remove '.nfs0000000000120b3d00000001': Device or resource busy
rm: cannot remove '.nfs0000000000120b3c00000003': Device or resource busy
아 짱나네 rm -rf는 거의 무적 지우기 인데 왜 삭제 안되는거지 해서 찾아보다 보니 사용중인 프로세스가 있어서 그런거였음.
그렇다면 해당 파일이 사용중인 프로세스가 무엇인지 확인하는 명령어를 통해서 kill 후 삭제처리를 해보니 잘되었다.
아래 코드를 참조하시기 바란다.
$ lsof +D ./파일명
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 98469 apptm 154w REG 0,47 59299 1182524 .nfs0000000000120b3c00000003
java 98469 apptm 155w REG 0,47 676833 1182525 .nfs0000000000120b3d00000001
java 98469 apptm 156w REG 0,47 392 345550 .nfs00000000000545ce00000002
위 코드를 보니 98469 PID를 가진 프로세스가 파일을 잡고 안놔주고 있는 실정임.
ps 명령어를 통해서 저 PID를 찾아서 KILL 하자
$ ps -ef | grep 98469
계정명 98469 1 16 Jan06 pts/0 03:16:15 /usr/lib/jvm/jdk1.8.0_191/bin/java -Djava.util.logging.config.file=/was/apache-tomcat-9.0.21/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dspring.profiles.active=ops -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /was/apache-tomcat-9.0.21/bin/bootstrap.jar:/was/apache-tomcat-9.0.21/bin/tomcat-juli.jar -Dcatalina.base=/was/apache-tomcat-9.0.21 -Dcatalina.home=/was/apache-tomcat-9.0.21 -Djava.io.tmpdir=/was/apache-tomcat-9.0.21/temp org.apache.catalina.startup.Bootstrap start
결국 TOMCAT에 잡고 있었음 ㅋㅋ
톰캣 끄고 삭제 처리 하니 깔끔하게 지워짐... 쉽구만...
만약에 다른 프로세스라면 $kill -9 98469 이렇게 삭제 처리하면 됩니다.
반응형