리눅스 명령어 fuser 사용법 및 5가지 옵션

리눅스 명령어 fuser는 특정 파일이나 디렉터리가 어떤 프로세스에 의해 사용 중인지 확인해야 할 때 유용하게 사용할 수 있습니다. 이 글에서는 fuser 명령어가 무엇인지, 그리고 다양한 옵션을 활용하는 방법에 대해 알아보겠습니다.

fuser 명령어란?

fuser는 파일 또는 디렉터리와 관련된 프로세스를 확인하는 데 사용되는 리눅스 명령어입니다. 파일 시스템 상에서 특정 파일이 어느 프로세스에 의해 사용 중인지 파악할 수 있습니다. 예를 들어, 어떤 프로세스가 파일을 잠그고 있어서 삭제나 이동이 불가능한 경우, 해당 프로세스를 찾아 종료할 수 있는 방법을 제공해 줍니다.

fuser 명령어의 기본 사용법

가장 기본적인 fuser 명령어는 다음과 같이 사용할 수 있습니다.

fuser [파일 또는 디렉터리 경로]
ShellScript

다음과 같이 fuser 명령어로 a.txt 파일을 사용하는 프로세스 ID(PID)를 확인할 수 있습니다.

그림 1. 리눅스 명령어 fuser: 파일을 사용하는 프로세스 확인
그림 1. 리눅스 명령어 fuser: 파일을 사용하는 프로세스 확인

옵션 설명

fuser 명령어는 다양한 옵션을 제공하여 보다 세밀한 작업을 수행할 수 있습니다. 자주 사용되는 몇 가지 유용한 옵션을 소개합니다.

-k 옵션: 프로세스 종료

fuser -k 옵션을 사용하면 특정 파일을 사용 중인 프로세스를 강제로 종료할 수 있습니다. 이 옵션은 주의해서 사용해야 합니다, 왜냐하면 실행 중인 프로세스를 강제로 종료하기 때문에, 시스템이나 프로그램이 불안정해질 수 있습니다.

fuser -k a.txt
ShellScript

이 명령어는 a.txt 파일을 사용 중인 모든 프로세스를 종료합니다. 실행 결과는 아래와 같이 프로세스 번호만 알려주는 방식은 똑같습니다.

그림 2. 리눅스 명령어 fuser: -k 옵션으로 프로세스 종료
그림 2. 리눅스 명령어 fuser: -k 옵션으로 프로세스 종료

하지만, 아래 그림과 같이 프로세스가 작동하고 있던 프로세스가 종료된 것을 확인할 수 있습니다.

그림 3. 리눅스 명령어 fuser -k 옵션으로 종료된 어플리케이션
그림 3. 리눅스 명령어 fuser -k 옵션으로 종료된 어플리케이션

-i 옵션: 사용자에게 확인 요청

-k 옵션과 함께 사용할 수 있는 -i 옵션은 프로세스를 종료하기 전에 사용자에게 확인을 요청합니다. 실수로 중요한 프로세스를 종료하는 것을 방지할 수 있는 좋은 방법입니다.

fuser -k -i a.txt
ShellScript

이 명령어를 입력하면 각 프로세스를 종료하기 전에 ‘Kill process xxxxx ? (y/N)’라고 묻는 메시지가 나타납니다.

그림 4. 리눅스 명령어 fuser: -i 옵션을 함께 사용해서 프로세스 종료 전 확인
그림 4. 리눅스 명령어 fuser: -i 옵션을 함께 사용해서 프로세스 종료 전 확인

-v 옵션: 상세 정보 출력

-v 옵션은 파일을 사용 중인 프로세스의 상세 정보를 출력합니다. 이 옵션을 사용하면 프로세스 ID뿐만 아니라, 해당 프로세스의 소유자, 프로세스 상태, 명령어 등 추가적인 정보를 확인할 수 있습니다.

fuser -v a.txt
ShellScript

이 명령어는 a.txt 파일을 사용하는 모든 프로세스에 대한 상세 정보를 보여줍니다. 아래 그림에서는 python 어플리케이션에서 해당 파일에 엑세스 하고 있다는 것을 확인할 수 있습니다.

그림 5. 리눅스 명령어 fuser: -v 옵션으로 프로세스에 대한 상세 정보 확인
그림 5. 리눅스 명령어 fuser: -v 옵션으로 프로세스에 대한 상세 정보 확인

-u 옵션: 사용자 이름 표시

fuser -u 옵션을 사용하면 파일을 사용 중인 프로세스뿐만 아니라, 해당 프로세스를 실행 중인 사용자의 이름도 함께 출력됩니다.

fuser -u /home/user/test.txt
ShellScript

이 명령어는 파일을 사용 중인 프로세스 ID와 더불어 해당 프로세스를 실행한 사용자의 이름을 함께 보여줍니다.

그림 6. 리눅스 명령어 fuser: -u 옵션으로 사용자 이름 표시
그림 6. 리눅스 명령어 fuser: -u 옵션으로 사용자 이름 표시

-m 옵션: 마운트된 파일 시스템 확인

-m 옵션은 파일 시스템 전체에 걸친 프로세스를 확인할 때 유용합니다. 특정 파일이 아니라, 파일 시스템 전체에 대한 정보를 알고 싶을 때 사용합니다.

fuser -m /dev/stdout
ShellScript

이 명령어는 아래와 같이 /dev/stdout를 사용하는 모든 프로세스를 출력합니다.

그림 7. 리눅스 명령어 fuser: -m 옵션으로 마운트된 파일 시스템 확인
그림 7. 리눅스 명령어 fuser: -m 옵션으로 마운트된 파일 시스템 확인

주의사항

fuser 명령어는 강력하지만, 매우 신중하게 사용해야 합니다. 특히 -k 옵션을 사용할 때는 시스템에서 중요한 프로세스를 종료하지 않도록 주의해야 합니다. 프로세스를 종료하면 데이터 손실이나 시스템 불안정이 발생할 수 있습니다. 또한, 루트 권한이 필요할 수 있으므로, 명령어 실행 시 sudo를 붙여 사용해야 하는 경우도 있을 수 있습니다.

sudo fuser -k /home/user/test.txt
ShellScript

정리

리눅스에서 파일이나 디렉터리가 어느 프로세스에 의해 사용 중인지 확인할 때 fuser 명령어는 매우 유용합니다. 기본적인 사용법뿐만 아니라 다양한 옵션을 통해 프로세스 종료, 사용자 정보 확인, 상세 정보 출력 등을 수행할 수 있습니다. 하지만, 특히 프로세스를 강제로 종료하는 기능은 신중하게 사용해야 하며, 시스템 불안정이나 데이터 손실을 방지하기 위해 주의가 필요합니다. fuser 명령어를 잘 활용하면 리눅스 시스템 관리에서 발생할 수 있는 여러 문제를 효과적으로 해결할 수 있습니다.

참고자료

관련 포스트

Leave a Comment