pid를 구하여 프로세스 kill을 할려고 하는데 여러개일 경우가 문제입니다.
글쓴이: dcmru / 작성시간: 금, 2007/04/20 - 4:55오후
구동스크립트를 만들었는데, stop시 문제가 있습니다.
proc=test
pid=`/bin/ps -e | grep ' test$' | sed -e 's/^ *//' -e 's/ .*//'`
echo "Stopping $prog."
if [ "${pid}" != "" ]; then
kill ${pid} > /dev/null 2>&1
fi
이렇게 했는데, 같은 이름의 프로세스가 여러개 있을 경우 제일 처음 pid만 kill을 합니다.
같은 이름의 프로세스를 모두 죽일려면 어떻게 해야하나요?
아니면 실제 데몬의 pid만 구할 수 있는 방법이 있는지요?
Linux이면 killall test 를 하면될것 같은데, 다른 OS에서 문제가 있을 것 같습니다.
어떤방법이 있을까요?
Forums:
pkill 이라는
pkill 이라는 프로그램이 있습니다.
솔라리스에서도 기본인 프로그램 같더군요.
안녕리눅스에도 있고.. centos 에도 있고.. 다 있나본데요? ^^;
앗 더 좋은 방법이군요. ^^;
pidof 만 주로 썼는데 pkill 좋네요. ^_^
---
사람의 기쁨이나 슬픔 같은 것은...
풀꽃의 희미한 향기만큼도 오래 지속되지 않는다...
---
사람의 기쁨이나 슬픔 같은 것은,
풀꽃의 희미한 향기만큼도 오래 지속되지 않는다.
음 리눅스라면 쉬운데,
pids=$(ps -e | grep 'test' | grep -v grep| awk '{print $1}')
이렇게 하시거나,
리눅스 root 유저라면 pidof test 등으로 프로세스 잡으시면 됩니다.
---
사람의 기쁨이나 슬픔 같은 것은...
풀꽃의 희미한 향기만큼도 오래 지속되지 않는다...
---
사람의 기쁨이나 슬픔 같은 것은,
풀꽃의 희미한 향기만큼도 오래 지속되지 않는다.
kill -9 -1
원츄
무식하게, for 문을
무식하게,
for 문을 돌립니다! -_-a
-----------------
한글을 사랑합니다.
-----------------
한글을 사랑합니다.
답변글 감사드립니다.
알려주신 것으로 테스트해봐야겠습니다. ^^
여러 OS를 대상으로 하기 때문에 없는 명령어도 있습니다.
그리고 그냥 kill 로 옵션없이 실행했더니 프로세스가 잘 안죽는 군요.
-9 옵션을 써도 무방할까요?
----------------------------------------------
노력만이 살길이다.
노력만이 살길이다.
댓글 달기