sun's longitude:332 36 35 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
 
/board/read.php:소스보기   
 

질문과 답변 게시판입니다.

현재 실시간으로 이곳 서버의 설정파일(몇개)를 보여주고 있습니다.
서버의 설정내용에 관한 질문은 먼저 이곳 서버의 설정내용을 참고하시길 바랍니다.

[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
2873 번 글의 답장글: Re: shell에서 kill 명령 사용 관련
글쓴이: 산이 [홈페이지] 글쓴날: 2010년 08월 31일 04:37:38 화(새벽) 조회: 2096

[푸른바다]님이 남기신 글:

>-----------------------------------------
>답변자가 기본적으로 참고할 내용입니다.
>- 배포판(옵션)    : 
>- 커널버전(옵션)  : 
>- 데몬버전(예:apache 1.3.27) : 
>- 데몬설치유형(RPM/컴파일/기타)
 : 
>-----------------------------------------
>*스팸필터링:한글 11자 이상 없으면 스팸페이지로 이동합니다.
>
>산이님, 안녕하세요?
>무더운 여름 건강히 잘 지내셨는지요,,,?
>이제 그래도 아침 저녁으로는 신선한 바람이 제법 스칩니다,,,
>송구스럽게 항상 이 곳에서 도움만 받고 있어서
>이 곳에 올 때마다 변함없이 지켜주고 계시는 산이님이 계셔서
>기분이 좋기도 하지만 ^^
>한편으로는 받기만 해서 그런지,,,미안하고 죄송한 마음도 적지 않게 듭니다,,,
^^;
>이상은 또 형식적으로(?) 보이는 안부 인사였구요 ^^;
>

혹 만나게 된다면 밥 쏘세요 ㅎㅎ 농담이구요.

>질문 하나 드립니다,,,
>
>다름이 아니라
>가끔 필요한 일이 있어서
>sh 명령으로 shell을 여러 개 실행시키는 일이 있는데
>중간에 수동으로 종료시키는 경우도 자주 있게 됩니다,
>
>그런데 kill 명령을 사용할 때 실행중인 Process 번호를
>하나 하나 타이핑을 해야 하는데
>좀 더 진보된 방법은 없을까요?
>하나만 죽이면 된다든가,,아니면 범위를 지정해서 일괄 Kill 시키거나
등등,,
>제 실력으로는 안되어서요,,, ^^;;;
>
>[root@bada src]# ps ax|grep sh 
>  287 ?        S      0:00 [pdflush]
>  288 ?        S      0:00 [pdflush]
> 2293 pts/0    S+     0:00 grep sh
> 2303 ?        S      0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe
--user=mysql
>10681 ?        Ss     0:42 /usr/sbin/sshd
>25243 ?        Ss     0:00 sshd: adko [priv]
>25245 ?        S      0:00 sshd: adko@pts/0 
>25246 pts/0    Ss     0:00 -bash
>25269 pts/0    S      0:00 -bash
>25295 pts/0    S      0:00 sh a1.sh
>25297 pts/0    S      0:00 sh a1.sh
>25299 pts/0    S      0:00 sh a1.sh
>25301 pts/0    S      0:00 sh a1.sh
>25303 pts/0    S      0:00 sh a1.sh
>25306 pts/0    S      0:00 sh a1.sh
>25308 pts/0    S      0:00 sh a1.sh
>25310 pts/0    S      0:00 sh a1.sh
>25312 pts/0    S      0:00 sh a1.sh
>25317 pts/0    S      0:00 sh a1.sh
>25338 pts/0    S      0:00 sh a2.sh
>25341 pts/0    S      0:00 sh a2.sh
>25343 pts/0    S      0:00 sh a2.sh
>25345 pts/0    S      0:00 sh a2.sh
>25349 pts/0    S      0:00 sh a2.sh
>25353 pts/0    S      0:00 sh a2.sh
>25355 pts/0    S      0:00 sh a2.sh
>25361 pts/0    S      0:00 sh a2.sh
>25365 pts/0    S      0:00 sh a2.sh
>
>[root@bada src]# kill -9  25295 25297 25299 25301 25303 25306 25308 25310 25312
25317 25338 25341 25343 25345 25349 25353 25355 25
>361 25365
>[2]   죽었음                  sh a1.sh
>[3]   죽었음                  sh a1.sh
>[4]   죽었음                  sh a1.sh
>[13]   죽었음                  sh a2.sh
>
>[root@bada src]# 


이 같은 경우 우선 프로세스 트리 구조를 확인합니다.

shell> ps aux --forest

최상위 부모 프로세스를 죽이면 자동으로 자식 프로세스도 자동으로 죽은 경우가 있지만
전적으로 이방법을 쓰지 마세요. 좀비 프로세스가 생길 수 있습니다.

ps aux | grep -E "a1.sh|a2.sh" | awk '{print $2}'

이런식으로 프로세스를 모두 출력하고 kill -9 명령어를 날리면 됩니다.
위 프로세스들이 확실히 맞다면 다음과 같이 한꺼번에 죽이면 됩니다.

kill -9 `ps aux | grep -E "a1.sh|a2.sh" | awk '{print $2}'`
또는
ps aux | grep -E "a1.sh|a2.sh" | awk '{print $2}' | xargs kill -9

주의할 점은 명령어 날리고 혹시 안 죽은 프로세스가 남았는지 재확인해 봐야 합니다.
(ps aux --forest)

그 외에 killall 명령어가 있기는 하지만 위의 경우 조금 위험합니다.
즉 모든 sh 프로세스 중에서 죽여서는 안되는 프로세스가 존재할 수 도 있기 때문이죠.
만약 확인하고 sh 프로세스를 모두 다 죽여도 된다면

killall sh

로도 가능합니다(그러나 조심).

제일 확실한 것은 위의 프로세스 리스트를 출력하고 마우스로 드래그한 다음 kill -9
명령어가 제일 편합니다.
괜히 꽁수 부리다가 실수하면 대략 난감하기 때문에 시스템 관리자는 조금 늦더라고
정확하게 하는게 좋습니다.


========================================

 
이전글 : shell에서 kill 명령 사용 관련
다음글 : 안녕하세요.  
 from 211.108.72.250
JS(Redhands)Board 0.4 +@

shell에서 kill 명령 사용 관련 안녕하세요.
인쇄용 


apache lighttpd linuxchannel.net 
Copyright 1997-2024. linuxchannel.net. All rights reserved.

Page loading: 0.06(server) + (network) + (browser) seconds