쉘프로그래밍에서 프로세스가 죽었는지 살았는지 아는 방법 ..
글쓴이: jung78yw / 작성시간: 화, 2004/12/28 - 10:17오전
crontab을 써서 매 10분마다 프로세스(아파치,센드메일,DNS등)을 검사해서 죽어있는 프로세스가 있으면 자동으로 살리는 쉘프로그램을 만들고자 합니다. 아파치같은 경우는 구동되고 있으면 httpd.pid라는 폴더가 만들어지고 죽으면 그 파일도 동시에 사라져서 처리가 간단했습니다.(그파일이 없으면 구동으로^^)
여러가지를 생각해봤는데.. 유닉스 명령어의 결과값을 변수에 저장할 수 있다면 그 방법도 괜찮을꺼 같고( ps -ef | grep sendmail 해서 없으면 구동하는 방식으로 하면 되겠죠??) 실행중인 프로세스의 프로세스 번호를 알수있다면 어떻게 처리할수도 있을듯합니다.
유닉스 명령어는 리다이렉션으로 파일에는 저장이 되는데 변수에는 저장이 안되는 것입니까?? 제가 쉘프로그래밍을 처음 해봐서 이것저것 공부는 하고 있는데 .. 전혀 모르겠습니다. 고수님들의 상세한 지도 부탁드립니다.(아무리 작은 부분이라도 지적해 주세요..ㅠㅠ) 그럼 꾸벅
Forums:
ps 를 때려서 얻는게 가장 안전할듯 합니다.간단하게 체크하는 루
ps 를 때려서 얻는게 가장 안전할듯 합니다.
간단하게 체크하는 루틴을 예를 들어드리겠습니다.
첫번째 라인의 명령어를 둘러싸는(?) 건 single quote(') 가 아니구
키보드 ESC 아래, 1(!) 왼쪽에 있는 ` 입니다.
##########################################################
넘어지는건 아직 괜찮다.
하지만 넘어질때마다 무언가를 주워서 일어나자.
꼭 cron 으로 돌릴 필요는 없을 것 같고sleep 600 을 스크
꼭 cron 으로 돌릴 필요는 없을 것 같고
sleep 600 을 스크립트 안에 넣어서 loop 를 돌리고
스크립트를 백그라운드로 실행해도 될 것 같군요.
자, 어디로 갈까……. 네트는 광대해…….
정말 감사드립니다.. 프로세스 아이디를 얻을 필요가 전혀 없었군요.. z
정말 감사드립니다.. 프로세스 아이디를 얻을 필요가 전혀 없었군요.. zienie님의 로직되로 돌리니까 바로 실행되는군요.. 다시한번 감사드립니다..
sonai 님의 말씀도 아주 도움이 많이 되었습니다.. 여러가지 방법으로 많은 것을 해보겠습니다. 그럼 이만.. ^^
djb 의 daemontools 를 애용하세요.
djb 의 daemontools 를 애용하세요.
------------------------------------------------------------------------------------------------
Life is in 다즐링
댓글 달기