:oops: 개발중에 db서버에 접속을 하는데 중간에 그냥 강제종료를 하는 경우가 많습니다. 그래서 관련 데몬 프로세스가 죽지 않고 계속 살아 있습니다 그래서 나중에는 서버가 죽어버립니다. 특정 ip에서 접속시 해당 데몬프로세스가 새로이 생성되지 않고 계속 살아서 서비스를 할수 있게 하려면 어떻게 해야 하나요? (ip당 하나의 전담 프로세스를 할당 할수 있나요?)
DB 서버가 DB client 를 어떻게 대응하는 지에 대한 것 같습니다만,
그것은 어떤 DB를 쓰느냐에 따라 다릅니다.
그런데, 하나의 IP에서 오는 것을 전담하는 식으로 구성되는 DB 서버는 없을 것 같네요.
---http://coolengineer.com
데몬을 죽지않게 프로그램하면되죠.. ㅡ,.ㅡ;
----------------------------------------------------------------------------
(질문 파악이 어렵네요. 읽는사람이 쉽게 이해할수 있도록 배려해서 써주셨으면 합니다.)
제가 잘못 이해했을 수도 있는데요
제가 이해한 바에 따르면 서버에 있는 daemon프로세스가 많아져서 서버가 죽는다고했죠 ? 맞나요 ?
그렇다면 데몬수를 제약하면 되겠네요.
방법은 많겠지만, 저는 shell방법을 권합니다.
shell (or perl)스크립트를 이용해서 데몬수를 제약할수 있습니다. (데몬프로세스가 아주빨리 증가하지않는다는 가정하에 솔직히, 급격히 증가하는 경우는 어떻게 될지 모르겠네요. 될꺼 같기도하고 않될것도 같고... )
예를 들어 ) 1. 데몬프로세스를 5개로 제한하기. (6개 7개 넘어가면 나머지 6,7,8... 을 죽입니다.) 2. 시간제한을 둬서 시간이 넘은 프로세스만 골라서 죽이기. 3. 특정 프로세스가 작동않하면 실행시키기. 4. 기타등이 가능합니다.
여기 거짓코드를 보여드립니다. (거짓코드일 뿐입니다. 실제 본인이 ps 옵션 기타등등 해주어야만 합니다.)
while 무한 list=`ps | grep ~~ | sed ~~~` 어쩌구 저쩌구 ~ 생략 ~ kill $list sleep 1 # :) done
그리고 위 코드 반대로 하면 특정프로세스가 동작않하고 있다면 실행되게 할수도 있죠.
list=`ps | grep DB` if [ -z $list ] ;then 프로그램DB실행~ endif
저런 식으로 하면되겠습니다.
이만입니다.
텍스트 포맷에 대한 자세한 정보
<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]
DB 서버가 DB client 를 어떻게 대응하는 지에 대한 것 같습니다
DB 서버가 DB client 를 어떻게 대응하는 지에 대한 것 같습니다만,
그것은 어떤 DB를 쓰느냐에 따라 다릅니다.
그런데, 하나의 IP에서 오는 것을 전담하는 식으로 구성되는 DB 서버는 없을 것 같네요.
---
http://coolengineer.com
그것은..
데몬을 죽지않게 프로그램하면되죠.. ㅡ,.ㅡ;
----------------------------------------------------------------------------
질문 파악이 어렵습니다.
(질문 파악이 어렵네요. 읽는사람이 쉽게 이해할수 있도록 배려해서 써주셨으면 합니다.)
제가 잘못 이해했을 수도 있는데요
제가 이해한 바에 따르면 서버에 있는 daemon프로세스가 많아져서 서버가
죽는다고했죠 ? 맞나요 ?
그렇다면 데몬수를 제약하면 되겠네요.
방법은 많겠지만, 저는 shell방법을 권합니다.
shell (or perl)스크립트를 이용해서 데몬수를 제약할수 있습니다.
(데몬프로세스가 아주빨리 증가하지않는다는 가정하에
솔직히, 급격히 증가하는 경우는 어떻게 될지 모르겠네요. 될꺼 같기도하고 않될것도 같고... )
예를 들어 )
1. 데몬프로세스를 5개로 제한하기.
(6개 7개 넘어가면 나머지 6,7,8... 을 죽입니다.)
2. 시간제한을 둬서 시간이 넘은 프로세스만 골라서 죽이기.
3. 특정 프로세스가 작동않하면 실행시키기.
4. 기타등이 가능합니다.
여기 거짓코드를 보여드립니다.
(거짓코드일 뿐입니다. 실제 본인이 ps 옵션 기타등등 해주어야만 합니다.)
while 무한
list=`ps | grep ~~ | sed ~~~` 어쩌구 저쩌구
~ 생략 ~
kill $list
sleep 1 # :)
done
그리고 위 코드 반대로 하면 특정프로세스가 동작않하고 있다면
실행되게 할수도 있죠.
list=`ps | grep DB`
if [ -z $list ] ;then
프로그램DB실행~
endif
저런 식으로 하면되겠습니다.
이만입니다.
댓글 달기