Linux

[리눅스] fuser 명령어 완벽 가이드 사용법(파일 또는 소켓을 사용하는 프로세스 확인)

인생아 2024. 10. 24. 18:29
반응형

fuser 명령어는 파일이나 디렉터리가 현재 어떤 프로세스에 의해 사용되고 있는지를 확인하는 데 사용됩니다. 특히 파일 시스템 관리나 네트워크 포트 확인 등에서 유용하게 사용됩니다. 시스템 관리자는 특정 파일이나 포트가 사용 중인 프로세스를 찾고 종료해야 할 때 fuser를 많이 활용합니다. 이 명령어는 리눅스에서 PID(프로세스 ID) 정보를 출력하여 어떤 프로세스가 자원을 사용하고 있는지 확인할 수 있게 해줍니다.

fuser 설치

대부분의 리눅스 배포판에서는 fuser가 기본적으로 설치되어 있습니다. 하지만 설치되어 있지 않은 경우 아래 명령어로 설치할 수 있습니다.

  • Debian/Ubuntu 계열에서 설치:
sudo apt-get install psmisc
  • Red Hat/CentOS 계열에서 설치:
     
sudo yum install psmisc

fuser 명령어 기본 사용법

fuser 명령어의 기본 형식은 다음과 같습니다.

fuser [옵션] [파일 또는 디렉터리]

이 명령어를 사용하면 지정된 파일이나 디렉터리가 어떤 프로세스에 의해 사용 중인지를 확인할 수 있습니다.

파일이 사용 중인 프로세스 확인

특정 파일이 현재 사용되고 있는지 확인하려면 다음과 같이 명령어를 입력할 수 있습니다.

fuser /path/to/file

실행 예시는 아래와 같습니다.

user@linux:~/workspace$ fuser /home/user/testfile.txt
/home/user/testfile.txt:  1234

위 예시에서 1234는 파일을 사용하는 프로세스의 PID입니다. 이 PID를 통해 프로세스를 식별하고 필요한 경우 종료할 수 있습니다.

디렉터리 사용 중인 프로세스 확인

디렉터리가 사용 중인지 확인하려면 디렉터리 경로를 지정해 명령어를 실행할 수 있습니다.

fuser /home/user/

실행 결과는 다음과 같습니다.

user@linux:~/workspace$ fuser /home/user/
/home/user/:  5678 7890

56787890은 해당 디렉터리를 사용 중인 두 개의 프로세스 ID입니다. 이를 통해 어떤 프로세스가 현재 디렉터리나 하위 파일을 사용 중인지 확인할 수 있습니다.

반응형

특정 포트가 사용 중인 프로세스 확인

fuser는 네트워크 포트가 어떤 프로세스에 의해 사용되고 있는지 확인할 때도 유용합니다. 예를 들어 TCP 포트 80이 사용 중인 프로세스를 확인하려면 다음과 같이 입력합니다.

fuser -n tcp 80

실행 결과는 아래와 같습니다.

user@linux:~/workspace$ fuser -n tcp 80
80/tcp:  9102

9102포트 80을 사용 중인 프로세스의 PID입니다. 웹 서버나 네트워크 관련 문제를 해결할 때 유용하게 활용할 수 있습니다.

프로세스 강제 종료

fuser를 통해 특정 파일이나 포트를 사용 중인 프로세스를 확인한 후, 필요에 따라 해당 프로세스를 강제 종료할 수 있습니다. -k 옵션을 사용하면 자동으로 해당 프로세스를 종료합니다.

fuser -k /home/user/testfile.txt

또는 포트를 사용 중인 프로세스를 종료하려면 다음과 같이 입력합니다.

fuser -k -n tcp 80

이 명령어는 TCP 포트 80을 사용 중인 프로세스를 종료합니다.

상세한 출력 확인

fuser 명령어에 -v 옵션을 추가하면 더 상세한 정보를 확인할 수 있습니다. 이 옵션은 프로세스가 파일을 읽기, 쓰기 등 어떻게 사용하고 있는지 자세한 내용을 출력합니다.

fuser -v /home/user/testfile.txt

출력 결과는 아래와 같습니다.

user@linux:~/workspace$ fuser -v /home/user/testfile.txt
                     USER        PID ACCESS COMMAND
/home/user/testfile.txt:  user      1234 F....  bash

여기서 ACCESS 열에서 F는 파일을 열고 있다는 의미입니다. 또한 COMMAND 열에서 파일을 사용하는 명령어도 확인할 수 있습니다.

결론

리눅스에서 fuser 명령어는 특정 파일이나 네트워크 포트가 어떤 프로세스에 의해 사용되고 있는지 확인하는 데 매우 유용한 도구입니다. 시스템 관리자는 이 명령어를 통해 프로세스를 효율적으로 관리하고, 필요시 문제가 발생하는 프로세스를 강제로 종료할 수 있습니다. 파일 시스템 문제 해결네트워크 문제 해결에도 활용할 수 있는 매우 강력한 유틸리티입니다.

참고사이트

반응형