fuser

fuser는 지정한 file, filesystem 또는 network socket을 사용 중인 process의 PID를 찾는 psmisc 명령어다. 대상 process에 signal을 보낼 수도 있으므로 조회 option과 종료 option을 구분해서 사용한다.

sudo apt update
sudo apt install psmisc
sudo dnf install psmisc

macOS에는 Linux psmiscfuser와 option이 호환되는 공식 Homebrew formula가 없다. 열린 file과 socket 조회에는 기본 제공 lsof를 사용한다.

psmisc fuser의 공식 native Windows 또는 winget package는 없다. Linux 동작이 필요하면 WSL distribution 안에서 psmisc를 설치한다.

설치 후 version을 확인한다.

fuser -V
fuser [OPTIONS] NAME...
fuser -l
fuser -V
  • fuser [OPTIONS] NAME…: file, socket 또는 filesystem을 사용하는 PID를 표시한다.
  • fuser -n SPACE NAME…: file, tcp, udp namespace에서 대상을 찾는다.
  • fuser -l: 사용할 수 있는 signal 이름을 나열한다.

기본 출력에서 PID 뒤 access 표시는 다음 의미다.

  • c: current directory
  • e: 실행 중인 executable
  • f / F: 열린 file / 쓰기용으로 열린 file
  • r: root directory
  • m: memory-mapped file 또는 shared library
  • -a, –all: 사용되지 않는 지정 대상도 표시한다.
  • -u, –user: PID 뒤에 process owner를 표시한다.
  • -v, –verbose: PID, USER, ACCESS, COMMAND 형식으로 자세히 표시한다.
  • -n, –namespace SPACE: file, tcp, udp namespace를 선택한다.
  • -4, –ipv4: TCP/UDP 검색을 IPv4로 제한한다.
  • -6, –ipv6: TCP/UDP 검색을 IPv6로 제한한다.
  • -m, –mount: 지정 file이 속한 filesystem 전체를 사용하는 process를 찾는다.
  • -M, –ismountpoint: 대상이 실제 mount point일 때만 요청을 수행한다.
  • -s, –silent: 출력 없이 exit status만 반환한다.
  • -I, –inode: file name 대신 inode를 기준으로 비교한다.
  • -k, –kill: 일치한 process에 signal을 보낸다. 기본값은 SIGKILL이다.
  • -i, –interactive: -k 사용 시 process마다 확인한다.
  • -w, –writeonly: -k 사용 시 write access가 있는 process만 대상으로 한다.
  • -SIGNAL: -k가 보낼 signal을 이름 또는 번호로 지정한다.
fuser -v /var/lib/mysql/mysql.sock
sudo fuser -v /var/lib/mysql/mysql.sock

다른 user의 process 정보는 권한 때문에 누락될 수 있다. 먼저 일반 권한으로 확인하고 필요할 때만 sudo를 사용한다.

sudo fuser -v -n tcp 80 443
sudo fuser -v 8080/tcp
sudo fuser -v -m /var
if fuser -s /path/to/file; then
  echo "in use"
else
  echo "not in use"
fi
-k는 일치한 process를 실제로 종료한다. 특히 -m은 같은 filesystem의 많은 process와 일치할 수 있다. mount point 종료 작업에는 -M-i를 함께 사용하고 대상 목록을 먼저 -v로 검토한다.
# 먼저 대상 확인
sudo fuser -v -m /mnt/data
 
# 실제 mount point인 경우에만 확인 후 SIGTERM 전송
sudo fuser -k -i -M -TERM -m /mnt/data
  • PID가 누락됨: 다른 user의 /proc/PID/fd를 읽을 권한이 없으면 결과가 불완전할 수 있다. 필요한 범위에서 sudo로 다시 확인한다.
  • port가 검색되지 않음: -n tcp 또는 -n udp를 지정하고 IPv4/IPv6 제한 option을 확인한다.
  • fuser -s가 출력하지 않음: 정상 동작이다. exit status 0은 하나 이상의 사용자가 발견됐음을 뜻하며, non-zero는 미사용 또는 fatal error를 뜻한다.
  • mount 대상이 너무 넓게 일치함: -m은 같은 device의 filesystem 전체를 대상으로 한다. 실제 mount point인지 보장하려면 -M을 함께 사용한다.

이 페이지는 Linux psmisc fuser 기준이다. distribution마다 psmisc version과 지원 option이 다를 수 있으므로 로컬 fuser –helpman fuser를 우선 확인한다. Linux mount namespace가 다르면 다른 namespace에서 mount된 block device를 찾지 못할 수 있다.

fuser --help (PSmisc 23.1)

  • codex:: 2026-08-04 기존 명령 기록을 보존하고 설치, option, 안전한 조회·signal 예제, 문제 해결 및 실제 help 출력으로 확장했다.
  • /home/u613600155/domains/cli.zerotymer.net/public_html/data/pages/fuser/ko.txt
  • 마지막으로 수정됨: 2026/08/04 04:49
  • (바깥 편집)