fuser - 파일 또는 소켓을
사용하는 프로세스를
식별합니다
fuser [
-fuv] [
-a|
-s] [
-4|
-6]
[
-c|
-m|
-n fI영역] [
-k
[
-i] [
-M] [
-w] [
-fI시그널] ]
fI이름 ...
fuser -l
fuser -V
fuser 는 지정 파일 또는
파일 시스템을
사용하는 프로세스의
PID를 나타냅니다. 기본
표시 모드에서, 각 파일
이름 다음에는 접근
형식을 나타내는
문자가 따라옵니다:
- c
- 현재
디렉터리입니다.
- e
- 실행하고 있는
실행 파일입니다.
- f
- 파일을 엽니다. f
는 기본 표시
모드에서
생략합니다.
- F
- 기록 목적으로
파일을 엽니다. F 는
기본 표시 모드에서
생략합니다.
- r
- 루트
디렉터리입니다.
- m
- 메모리에 매핑한
파일 또는 공유
라이브러리입니다.
- .
- 입력 자리이며,
기본 표시 모드에서
생략합니다.
fuser 는 지정 파일에
접근한 사용자가
없거나 치명적인
오류가 있을 경우에 0이
아닌 코드 값을
반환합니다. 적어도
하나 이상의 접근
사용자 또는
프로세스를 찾으면,
fuser에서 0값을
반환합니다.
TCP와 UDP 소켓으로
프로세스를
찾아보려면, 해당 이름
영역을
-n 옵션으로
선택해야합니다.
fuser는
기본적으로 IPv6와 IPv4
소켓을 둘 다
찾아봅니다. 기본
동작을 바꾸려면
-4와
-6 옵션을
사용하십시오. 소켓은
로컬 또는 원격 포트,
원격 주소로 지정할 수
있습니다. 모든 필드는
옵션이지만, 빠진
입력란 앞에는 반드시
쉼표를 넣어야 합니다:
[fI로컬_포트][,[fI원격_호스트][,[fI원격_포트]]]
기호 문자 또는 숫자
값을 IP 주소와 포트
번호로 사용할 수
있습니다.
fuser 는 PID만을 표준
출력으로 내보내며
나머지는 표준 오류로
내보냅니다.
-
-a, --all
- 명령행에 지정한
모든 파일을
나타냅니다.
기본적으로 최소한
하나 이상의
프로세스로 접근한
파일만 나타납니다.
- -c
-
-m 옵션과
동일하며, POSIX 호환
목적으로
사용합니다.
- -f
- 조용히 무시하며,
POSIX 호환 목적으로
사용합니다.
-
-k, --kill
- 파일에 접근하느
프로세스를 강제로
끕니다. -fI시그널로
바꾸지 않으면 SIGKILL
시그널을 보냅니다.
fuser 프로세스 자체는
강제로 끝내지
않습니다만, 다른 fuser
프로세스는 강제로
끝낼 수 있습니다.
fuser를 실행하는
프로세스의 해당
사용자 ID는 강제로
끝내기 전에 실제
사용자 ID로
설정합니다.
-
-i, --interactive
- 프로세스를
강제로 끝내기 전에
사용자에게
확인합니다. 이
옵션은 -k 옵션이
없을 떄도 조용히
무시합니다.
-
-I, --inode
- 이름 영역에 대해
fB파일을 지정한
파일의 아이노드와
모두 비교하며,
네트워크 파일
시스템의 파일 이름에
대해서는 수행하지
않습니다.
-
-l, --list-signals
- 알려진 모든
시그널 이름을
나타냅니다.
-
-m 이름, --mount
이름
- fI이름 에는
마운트한 파일
시스템이나 마운트한
블록 장치에 있는
파일을 지정합니다.
해당 파일 시스템의
파일에 접근하는 모든
프로세스를
나타냅니다.
디렉터리를
지정했다면, 자동으로
fI이름/ 으로 바꾸어
해당 디렉터리에
마운트한 파일
시스템을
활용합니다.
-
-M, --ismountpoint
- fI이름으로 마운트
지점을 지정했을 때만
요청을 수행합니다.
fI이름이 파일
시스템에 없을때
머신에서 사용자
여러분의 강제 퇴출을
막는 귀중한
안전장치입니다.
- -w
- 기록 접근을 하고
있는 프로세스만
강제로 끝냅니다. -k
옵션이 없을 때도 이
옵션은 조용히
무시합니다.
-
-n 이름영역,
--namespace 이름영역
- 다른 이름 영역을
선택합니다. file(파일
이름, 기본), udp(로컬 UDP
포트), tcp(로컬 TCP 포트)
이름 영역을
지원합니다. 포트의
경우 포트 번호 또는
심볼 이름 둘 다
지원합니다.
햇갈리지만 않는다면
fI이름 /fI영역 (예:
80/tcp) 표기 방식을
활용할 수 있습니다.
-
-s, --silent
- 동작 내용 출력을
하지 않습니다. 이
모드에서 -u, -v
옵션은 무시합니다.
-a 옵션은 -s 옵션과
함께 사용하면
안됩니다.
-
-fI시그널
- 프로세스를
강제로 끝낼 때 SIGKILL
대신 내보낼 지정
시그널을 사용합니다.
시그널은 이름(예: -HUP)
또는 번호(예: -1)로
지정할 수 있습니다.
이 옵션은 -k 옵션을
사용하지 않으면
조용히 무시합니다.
-
-u, --user
- 각 PID에 프로세스
소유자 사용자 이름을
붙입니다.
-
-v, --verbose
- 장황한 출력 모드.
프로세스를 ps
방식으로 나타냅니다.
PID, 사용자, 명령을 ps와
비슷하게 나타냅니다.
접근에서는
프로세스의 파일 접근
방식을 나타냅니다.
일부 파일이 마운트
지점, knfs 익스포팅, 스왑
파일로 접근했을
경우에도 장황한 출력
모드로 나타냅니다.
이 경우 kernel이 PID 대신
나타납니다.
-
-V, --version
- 버전 정보를
나타냅니다.
-
-4, --ipv4
- IPv4 소켓만
검색합니다. 이
옵션은 -6 옵션과
사용하면 안되며, tcp 및
udp 이름 영역에만
해당합니다.
-
-6, --ipv6
- IPv6 소켓만
검색합니다. 이
옵션은 -4 옵션과
사용하면 안되며, tcp 및
udp 이름 영역에만
해당합니다.
- /proc
- proc 파일 시스템의
위치입니다
- fuser -km /home
- 어떤 힉으로든 /home
파일 시스템에
접근하고 있는 모든
프로세스를 강제로
끝냅니다.
-
if fuser -s /dev/ttyS1; then :; else
fI명령 ; fi
- /dev/ttyS1을 활용하는
프로세스가 없다면
fI명령을 실행합니다.
- fuser telnet/tcp
- (로컬) 텔넷
포트의 모든
프로세스를
나타냅니다.
동일한 파일 또는 파일
시스템에 동일한
방식으로 여러번
접근하는 프로세스는
한번만 나타냅니다.
동일한 개체를
명령행에 여러번
지정하면, 일부 항목은
무시합니다.
fuser는 권한 없이 실행할
경우 일부 정보를
가져오지 못할 수
있습니다. 이 결과로,
다른 사용자가 소유한
프로세스에서 연
파일은 목록에
나타나지 않으며,
매핑한 실행 파일로
분류한 요소만
나타납니다.
fuser는 권한이 없는 파일
서술자 테이블의
프로세스 정보를
나타낼 수는 없습니다.
대부분의 경우 이런
문제는
fuser를 일반
사용자로 실행할 때 TCP
또는 UDP 소켓을 찾아볼
때 나타납니다. 이 경우
fuser에서는 접근 권한이
없다고 알려줍니다.
fuser SUID 루트를 설치하면
일부 정보를 조회하는
관련 문제를 막아주긴
하지만, 보안 및 사생활
문제로 적절하지
못합니다.
udp 와
tcp 이름 영역,
유닉스 도메인 소켓은
1.3.78 버전 이전
커널에서는 검색할 수
없습니다.
커널 접근은
-v
옵션으로만
나타납니다.
-k 옵션만 프로세스를
처리할 수 있습니다.
사용자가 커널이라면,
fuser 에서 지침을
나타내긴 하지만 그
이상의 동작은 취하지
않습니다.
fuser는 다른 마운트 이름
영역에서 프로세스가
마운팅한 블록 장치는
보여주지 않습니다.
fuser가 아닌 프로세스
이름 영역의 프로세스
파일 서술자 테이블에
장치 ID가 나타나서
결과적으로 일치하지
않기 때문입니다.
fuser -m /dev/sgX 명령 (또는
-k
플래그로 강제로 끝냄)
은 해당 장치를
설정하지 않아도 모든
프로세스를
보여줍니다. 이런
동작을 취하는 다른
장치가 있을 수도
있습니다.
-m 마운트 옵션은
동일한 장치에서
지정한 파일과
일치하는 어떤
파일이든 찾겠지만,
마운트 지점을
지정하기만 할 경우
-M
옵션을 활용하십시오.
kill(1),
killall(1),
lsof(8),
mount_namespaces(7),
pkill(1),
ps(1),
kill(2).