본문 바로가기

리눅스

[draft] fuser 명령어

728x90

fuser 명령어(umount 옵션이 안될 때 사용)

리눅스에서 파일 또는 소켓에 의해 열려 있는 프로세스를 확인하고 관리하는 데 사용됩니다. 이 명령어는 주로 파일 시스템의 특정 파일이나 디렉토리 또는 소켓에 접근하고 있는 프로세스의 PID(Process ID)를 찾는 데 유용합니다.

사용법

fuser [options] [file|socket|directory...]

주요 옵션

  • -a, --all : 지정된 파일 또는 소켓과 관련된 모든 프로세스를 표시(기본적으로는 해당 파일을 열고 있는 프로세스만 표시)
  • -k, --kill : 지정된 파일을 사용 중인 프로세스를 종료(-k 옵션 뒤에 시그널을 지정하지 않으면 기본적으로 SIGKILL 시그널을 사용)
  • -i, --interactive : 프로세스를 종료할 때 사용자에게 확인을 요청
  • -l : 사용 가능한 signal을 출력
  • -m, --mount : 지정한 파일이나 디렉토리가 마운트된 파일시스템에서 실행되고 있는 프로세스의 PID 출력
  • -n space : 지정된 공간(file, udp or tcp)내에서 검색
  • -s : 결과를 간략히 출력
  • -signal : 지정된 프로세스에 기본 signal인 SIGKILL 외에 지정된 signal을 보냄
  • -u, --user : 프로세스 소유자의 UID를 출력
  • -v : 자세한 출력 모드(프로세스의 User, PID, ACCESS, COMMAND를 보여줌)

사용 예시

특정 파일을 열고 있는 프로세스 찾기

fuser /path/to/file

파일을 열고 있는 모든 프로세스 찾기(상세)

fuser -a /path/to/file

특정 포트를 사용 중인 프로세스 찾기(예: TCP 포트 80)

fuser -n tcp 80

열려 있는 파일을 사용 중인 프로세스 종료

fuser -k /path/to/file

프로세스 종료 시 사용자 확인 요청

fuser -ki /path/to/file
728x90

오류 메세지

$ umount /data
umount: /data: device is busy

파일 시스템이나 디렉토리(/data)가 현재 사용 중이기 때문에 마운트 해제(umount)가 실패했음을 나타냅니다.

 

사용 중인 디렉토리 확인

fuser -m /data

/data를 사용 중인 프로세스에 대한 상제 정보를 출력

fuser -v /data
$ fuser -v /data
                     USER        PID ACCESS COMMAND
/data:               root     kernel mount /data

/data를 사용 중인 프로세스를 강제로 종료

fuser -ck /data

마운트 해제

umount /data

(또는)강제 마운트 해제

umount -l /data

/WEBDEV 파일 시스템 분리

/WEBDEV를 사용 중인 프로세스가 두 개 있음을 확인한 후 이들을 강제로 종료하고 마운트를 해제하여 시스템에서 해당 파일 시스템을 분리합니다.

 

1. 디스크 사용량 확인

[root@scbyun ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             267G  1.3G  253G   1% /
tmpfs                  16G     0   16G   0% /dev/shm
/dev/sda1             194M   26M  159M  14% /boot
/dev/sdb1             1.7T  197M  1.6T   1% /edata
192.168.0.100:/vol/http_vol
                       10T  608G  9.5T   6% /WEBDEV

2. 사용 중인 프로세스 확인

[root@scbyun ~]$ fuser -v /WEBDEV
                     USER        PID ACCESS COMMAND
/WEBDEV:             root      12781 ..c.. tail
                     root      12783 ..c.. tail

3. 프로세스 종료

[root@scbyun ~]$ fuser -ck /WEBDEV
/WEBDEV:             12781c 12783c

4. 마운트 해제

[root@scbyun ~]$ umount /WEBDEV

5. 디스크 사용량 재확인

[root@scbyun ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             267G  1.3G  253G   1% /
tmpfs                  16G     0   16G   0% /dev/shm
/dev/sda1             194M   26M  159M  14% /boot
/dev/sdb1             1.7T  197M  1.6T   1% /edata

 

fuser는 특정 파일이나 소켓을 사용 중인 프로세스를 찾고 관리하는 데 유용한 명령어로 시스템 관리 및 문제 해결에 중요한 도구입니다.

 

728x90