2011. 8. 13. 04:07

[ 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

 

 

 

 

Posted by devanix