특정프로세서 감시후 실행시키는 프로그램??
글쓴이: jwy22 / 작성시간: 금, 2005/02/04 - 1:05오전
안녕하세요.
서버 프로그램을 하다가 몇가지 안풀리는것이 있어서 질문합니다.
특정 프로세서를 감시하고 있다가 그것이 종료하면
자동으로 다시 실행시켜주는 프로그램이 있는지요..??
어떻게 해야할지 몰라서 지금은 쉘프로그램과 C프로그램을
혼합해서 사용하려고 프로그램을 짜고 있습니다.
그런데 쉘에 2개의 인자값을 넘기고 그 받은 인자값1의 이름으로
프로세서가 실행중인지 감시하고 죽었다면, 인자값1,2로 재가동
시키는 프로램을 짜려고 하고 있습니다.
쉘에서 막혀서 엄청 헤매고 있습니다.
쉘실행할때 인자값을 $1, $2 라는 변수로 받을수 밖에 없나요?
쉘프로그램 기초 문법같은것은 많이 찾아봤습니다. ㅜ.ㅜ 거기서 답을 찾지는 못했습니다.
제가 참고할 만한 자료나 사이트가 있을까요?
많은 분들의 조언 부탁드립니다.
감사합니다.~
Forums:
유닉스에서는 전형적으로 SIGCLD를 이용하여 해당 프로세스의 존재유무를
유닉스에서는 전형적으로 SIGCLD를 이용하여 해당 프로세스의 존재유무를 확인하고, 재실행시킵니다.
즉, 부모는 감시자요, 자식들은 실제 서비스를 수행하는 것들이지요.
fork and exec라는 메카니즘으로, 실행하게될것이고요.
자식이 죽으면, 부모에게 SIGCLD를 날릴것이고, 부모는 어느 자식인지 판단해서,
다시 실행시킨다는......
* 이러한 시그널에 기초한 프로그램만으로 부족하다면(죽으면 살리는...),
이를테면, 정상동작인지를 판단하고자 한다면, heartbeat를 구현하여
코딩하여야 합니다. 결국 IPC를 이용해서 정보 주고받는 그런얘기지요.
* 시그널을 이용하지 않고, 프로그램이름으로 프로세스 리스트를 검사해서 시도해보는 별로 안좋은 방법도 있으나, 권고하지 않습니다.
* 키워드: heartbeat, respawn, fork_and_exec
본문중에 SIGCLD는 SIGCHLD 을 말하는거 같습니다.
본문중에 SIGCLD는 SIGCHLD 을 말하는거 같습니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
답변 감사합니다.결국엔 쉘프로그램에서 인자값을 받지않고 프로그
답변 감사합니다.
결국엔 쉘프로그램에서 인자값을 받지않고
프로그램안에 하드 코딩을 했습니다. :oops:
테스트하고 서버에 올렸는데...잘돌아가고 있습니다.
다시한번 두분 답변갑사합니다. ^^
내손안에는 아직 비장의 무기가 남아 있다.
그것은 희망이다.
-나폴레옹-
댓글 달기