IT/리눅스마스터1급

실행중인 프로세스 찾기(pgrep, fuser)

알콩달콩아빠 2022. 10. 30. 16:53
728x90
반응형
[ pgrep으로 실행중인 프로세스 찾기 ]
pgrep을 사용하여 가장 기본적인 형태로, 이름을(또는 일부) 검색.
 
▶ 기본적인 사용 예제:
$ pgrep init
1
2689
프로세스 ID를 보여줌
$ pgrep -l init
1          init
2689   xinit
-l 옵션 : 프로세스 이름을 보여줌
$ pgrep -lu devanix
2551    sshd
2552    bash
2803    vim
-u 옵션 : 유저와 관련된 프로세스 찾기
 
▶ ps 와 pgrep 결합 사용 예:
/* sshd 및 실행에 대한 검색의 ps(간단하게) */
$ ps -p `pgrep sshd`


  PID     TTY      STAT   TIME    COMMAND   626    ?           Ss        0:00     /usr/sbin/sshd -D
 4000   ?          Ss        0:00     sshd: devanix [priv]
 4110   ?          S           0:01     sshd: devanix@pts/1
 


/* sshd 및 실행에 대한 검색의 ps(전체) */
$ ps -fp $(pgrep sshd)


UID         PID      PPID   C    STIME  TTY      STAT   TIME    CMD root         626      1         0     Aug12   ?           Ss       0:00     /usr/sbin/sshd -D
root         4000    626    0    01:59     ?           Ss       0:00     sshd: devanix [priv]
devanix   4110   4000  0    01:59     ?           S         0:01     sshd: devanix@pts/1
 


 
/* firefox 검색, 우선순위 향상 */
# sudo renice -5 $(pgrep firefox)
20522:  old  priority 0, new priority -5
20527:  old  priority 0, new priority -5
☞ 이러한 방법으로 입력한 프로세스 IDpgrep을 결합할 수 있다.
 
 

 

 

[ fuser로 실행중인 프로세스 찾기 ]
fuser명령은 프로세스의 파일 혹은 socket을 찾는데 사용.
fuser 명령은 마운트된 파일시스템의(로컬 하드디스크 혹은 삼바 공유와 같은)프로세스를 찾는데 유용.
 
▶ /boot와 연관 되서 실행중인 프로세스 ID 출력
/* boot를 열고 프로세스의 자세한 정보 출력 */
$ fuser -mauv /boot


                        USER          PID        ACCESS    COMMAND/boot:               root            kernel     mount         (root)/
                       devanix       990          Frce.           (devanix)sh
                       devanix      1092        Frce.            (devanix)ibus-daemon
                       devanix      1105        Frce.            (devanix)ibus-gconf
…[중략]…


 
/* boot 프로세스의 부모 ID를 보여줌 */
$ fuser /boot
/boot:       19760c 29396c
/* boot 프로세스의 모든 ID를 보여줌 */
$ fuser -m /boot
/boot:        3853c 19760c 28171c 29396c 29252c 29255c
/* boot 프로세스의 ID/유저를 보여줌 */
$ fuser -u /boot
/boot:         19760c(root) 29396c(root) 29252c(root) 29255c(root)
☞ 파일 오픈, 쉘 오픈 혹은 /boot안의 현재 디렉토리와 자식 프로세스의 쉘을 오픈할 수 있다.
(-m 옵션) : 파일시스템 또는 블록장치를 사용하는 모든 프로세스 출력.
(-a 옵션) : 모든 프로세스 출력.
(-u 옵션) : 각 유저의 프로세스를 표시.
(-v 옵션) : 정보 출력.
 
▶ 파일시스템의 파일을 오픈한 모든 프로세스에 시그널을 보냄(kill)
/* boot 파일 오픈의 모든 프로세스를 kill(SIGKILL) */
$ sudo fuser -k /boot
/* 사용 가능한 시그널 목록 */
$ fuser -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED
/* boot 오픈된 모든 프로세스에 HUP 시그널을 보냄 */
$ sudo fuser -k -HUP /boot
 
 

출처: https://devanix.tistory.com/248 [┗System∑Sec†ion┛:티스토리]

728x90
반응형