웹사이트 검색

Linux 퓨저 명령을 사용하는 방법


소개

fuser 명령은 지정된 파일, 디렉토리 또는 소켓을 사용 중인 프로세스를 찾기 위해 설계된 Linux 유틸리티입니다. 또한 해당 프로세스를 실행하는 사용자 소유에 대한 정보와 액세스 유형을 제공합니다.

퓨저 유틸리티 사용 방법

fuser 매뉴얼 페이지를 검토하여 fuser와 함께 사용할 모든 옵션에 대한 개요를 얻을 수 있습니다. 옵션 없이 fuser를 단독으로 실행하여 fuser 구문의 개요를 볼 수도 있습니다.

  1. fuser
Output
No process specification given Usage: fuser [-fMuv] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME... fuser -l fuser -V Show which processes use the named files, sockets, or filesystems. -a,--all display unused files too -i,--interactive ask before killing (ignored without -k) -k,--kill kill processes accessing the named file -l,--list-signals list available signal names -m,--mount show all processes using the named filesystems or block device -M,--ismountpoint fulfill request only if NAME is a mount point -n,--namespace SPACE search in this name space (file, udp, or tcp) -s,--silent silent operation -SIGNAL send this signal instead of SIGKILL -u,--user display user IDs -v,--verbose verbose output -w,--writeonly kill only processes with write access -V,--version display version information -4,--ipv4 search IPv4 sockets only -6,--ipv6 search IPv6 sockets only - reset options udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]

디렉토리에서 실행 중인 프로세스를 보는 방법

fuser는 상세 모드에서 도구를 실행하는 -v 옵션과 함께 사용할 수도 있습니다. verbose 옵션은 사용자가 fuser가 수행하는 작업을 관찰할 수 있도록 더 많은 출력을 생성하는 데 사용됩니다. -v 옵션을 포함하여 현재 디렉토리인 .에서 fuser를 실행합니다.

  1. fuser -v .
Output
USER PID ACCESS COMMAND /home/sammy: sammy 17604 ..c.. bash

이 경우 이 디렉터리에서 실행 중인 유일한 프로세스는 바로 지금 명령을 실행하고 있는 대화형 bash 셸입니다.

자세한 정보 표시 모드에서 실행할 때 fuser 유틸리티는 USER, PID, ACCESS에 대한 정보를 제공합니다. 프로세스의 COMMAND. ACCESS 아래의 c 문자는 액세스 유형을 나타내며 이 경우 현재 디렉터리를 의미합니다. 실행 중인 실행 파일, 루트 디렉터리, 열린 파일, 매핑된 파일 또는 공유 라이브러리와 같은 다른 액세스 유형이 있습니다.

네트워크 소켓을 사용하여 프로세스를 찾는 방법

TCP 및 UDP 소켓을 사용하여 프로세스를 조회해야 할 수도 있습니다. 이 예를 시연하기 위해 먼저 nc를 사용하여 포트 8002에서 TCP 수신기를 생성하여 관찰할 수 있는 실행 중인 프로세스가 있도록 합니다.

  1. nc -l -p 8002

터미널이 실행되는 동안 터미널이 차단됩니다. 다른 터미널 창에서 fuser를 사용하여 -n 옵션과 함께 TCP 포트 8002에서 실행 중인 프로세스를 찾습니다.

  1. fuser -v -n tcp 8002
Output
USER PID ACCESS COMMAND 8002/tcp: sammy 17985 F.... nc

참고: 기본적으로 fuser 도구는 IPv4 및 IPv6 소켓을 모두 확인하지만 -4-6 옵션을 사용하여 이를 변경할 수 있습니다. 각각 IPv4만 확인하거나 IPv6 연결만 확인합니다.

이 출력은 netcat을 사용하는 프로세스의 프로세스 ID(PID)가 17985이고 이를 시작하는 데 사용된 명령이 'nc'임을 보여줍니다. 프로세스 ID(PID)는 실행 중인 프로세스를 중지하거나 종료하는 등 다양한 방법으로 사용할 수 있습니다. Linux에서 프로세스 관리에 대한 ps, kill 및 nice 사용 방법을 읽어 프로세스 관리에 대해 자세히 알아볼 수 있습니다. 또한 fuser 자체를 사용하여 -k 플래그를 사용하여 특정 포트에서 실행 중인 프로세스를 종료할 수 있습니다.

  1. fuser -k 8002/tcp
Output
8002/tcp: 18056

첫 번째 터미널 창으로 돌아가면 nc 프로그램이 종료되고 셸로 반환되었음을 알 수 있습니다.

퓨저 유틸리티를 사용하여 특정 신호를 프로세스에 보낼 수도 있습니다. -k 옵션과 함께 사용하면 fuser 명령은 프로세스에 KILL 신호를 보냅니다. 특정 실행 프로세스로 보낼 수 있는 다른 많은 신호가 있습니다. fuser -l로 나열할 수 있습니다.

  1. fuser -l
Output
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS

결론

이 기사에서는 fuser를 사용하여 Linux 시스템에서 사용 중인 포트와 디렉토리를 모니터링하는 몇 가지 예제를 배웠습니다. fuser는 시스템에서 어떤 알 수 없는 프로세스가 실행되고 있는지 파악하려고 할 때 특히 유용할 수 있습니다.

다음으로 netstatdu를 사용하여 다른 서버 리소스를 모니터링하는 방법을 배울 수 있습니다.