ABC라는 이름의 프로그램이 있는데, 이놈이 프로세스를 여러개 띄우는 놈이라서, ps 해보면 ABC가 여러개 있습니다. 그중에서 가장 작은 PID를 가진 것을 죽이면 나머지도 다죽는데... 이것을 스크립트로 하나 만들어놓을까 싶어서요...
그냥 ABC라는 이름을 가진 놈을 다 죽여도 됩니다만... 이거는 ps랑 grep하면 간단하게 되는데...
PID가 가장 작은 녀석만 죽이는 건 어떻게 만들어야할까요??
ps -ef | awk '/ABC/{print $2 | "sort -n"}' | head -1
ps의 결과가 프로세서 생선 순으로 정렬되므로 마지말 프로세서의 PPID를 죽이면 되지 않을까요?
ps -ef | awk '/ABC/{print $3 }' | tail -1
가장 먼저 생긴 프로세서를 죽여야 하니까 첫번째가 아닐까 합니다만.. 잘 모르겠군요. 그리고 tail의 경우에는 awk가 검색되어 마지막에 나타날 것이기 때문에.. awk검색 부분을 제거해야 합니다.
ps -ef | awk '/[A]BC/{print $3 }' | tail -1
ABC라는 이름의 프로그램이 있는데, 이놈이 프로세스를 여러개 띄우는 놈이라서,
그래서 pung96님의 스크립을 살짝 수정 했었습니다.
생각없이 수정했는데 마지막에 awk의 프로세서가 걸려서 억지로 만드니까
ps -ef |grep ABC | grep -v grep | awk '{print $3}' | tail -1
killall ABC 이건 좀 무식한건가?
=== 건달의 경지를 꿈꾸며 ===
부모 프로세스가 fork를 이용해서 자식 프로세스를 실행하는 거라면 부모 프로세스의 pid가 항상 가장 작은 값이라고 볼 수는 없지 않나요?
정확히는 모르겠습니다만.. 보통은 그렇게 만들지 않겠지요... 라고밖에
네, process id는 언젠가는 다시 처음부터 할당되는 방식으로 돌고 돌기 때문에 부모가 항상 작다고는 할 수 없습니다.
심지어 AIX는 process id가 1 씩 증가하는 방식으로 생성되지 않고 랜덤(?)하게 생기더군요.
---http://coolengineer.com
pkill -9 ABC
이방식도 좀 무식한가요??
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
ps -ef | awk '/ABC/{print $2
ps -ef | awk '/ABC/{print $2 | "sort -n"}' | head -1
PPID를 이용하는게 어떨가요?
ps의 결과가 프로세서 생선 순으로 정렬되므로
마지말 프로세서의 PPID를 죽이면 되지 않을까요?
ps -ef | awk '/ABC/{print $3 }' | tail -1
가장 먼저 생긴
가장 먼저 생긴 프로세서를 죽여야 하니까 첫번째가 아닐까 합니다만.. 잘 모르겠군요.
그리고 tail의 경우에는 awk가 검색되어 마지막에 나타날 것이기 때문에.. awk검색 부분을 제거해야 합니다.
Quote:ABC라는 이름의
하나의 부모프로세서가 여러개의 자식프로세서를 생성한다고 생각되서 자식프로세서 중
아무거나의 부모프로세서를 죽이면 되지 않을까라고 생각했습니다.
부모프로세서는 아마도 가장 먼저 생성되었기 때문에 마지막에 생성된놈은
필히? 자식프로세서라고 생각하고 그프로세서의 부모프로세서를 ....
그래서 pung96님의 스크립을 살짝 수정 했었습니다.
생각없이 수정했는데 마지막에 awk의 프로세서가 걸려서 억지로 만드니까
더 간단하게 안되나???
ps -ef | awk '/[A]BC/{print
이게 제가 아는 가장 짧은 방법입니다.
그리고 1이 2를 만들고 2가 3을 만들고 3이 4를 만드는 그런 경우가 있더군요.
ppid를 사용하는건 좋은 아이디어 같습니다.
killall ABC ??
killall ABC 이건 좀 무식한건가?
=== 건달의 경지를 꿈꾸며 ===
=== 건달의 경지를 꿈꾸며 ===
부모 프로세스가
부모 프로세스가 fork를 이용해서 자식 프로세스를 실행하는 거라면 부모 프로세스의 pid가 항상 가장 작은 값이라고 볼 수는 없지 않나요?
정확히는
정확히는 모르겠습니다만.. 보통은 그렇게 만들지 않겠지요... 라고밖에
네, process id는
네, process id는 언젠가는 다시 처음부터 할당되는 방식으로 돌고 돌기 때문에 부모가 항상 작다고는 할 수 없습니다.
심지어 AIX는 process id가 1 씩 증가하는 방식으로 생성되지 않고 랜덤(?)하게 생기더군요.
---
http://coolengineer.com
그냥 pkill을 이용하면 되지 않나요?
pkill -9 ABC
이방식도 좀 무식한가요??
댓글 달기