링크 ux 에서 스 크 립 트 를 통 해 자동 으로 프로그램 을 다시 시작 합 니 다.

1774 단어 liinnuuxx 하내통
어떤 프로그램 이 든 완벽 할 수 없다.이론 적 으로 어떤 프로그램 이 든 코어 덤 프 의 하루 가 있다.본 격 적 으로 운영 되 는 프로그램,특히 서버 프로그램 은 코어 덤 프 가 되면 그 결 과 는 상상 조차 할 수 없다.서버 개발 경험 이 있 는 친 구 는 반드시 심야 의 꿈 에서 전화 에 놀 라 깨 는 참혹 한 경험 을 겪 고 부산 하 게 서버 를 다시 시작 할 것 이다.다음날 출근 하면 사장 에 게 한바탕 호되게 꾸지람 을 들 어야 한다.따라서 프로그램 이 잘못 되 었 을 때 자동 으로 재 부팅 하 는 것 이 중요 하 다.여기 서 Liux 가 자동 으로 프로그램 을 다시 시작 하 는 방법 에 대해 집중 적 으로 토론 합 니 다.    Liux 에서 프로그램의 자동 재 부팅 을 실현 하 는 방법 은 여러 가지 가 있 습 니 다.여기 서 우리 가 소개 하 는 것 은 스스로 스 크 립 트 를 써 서 이 루어 지 는 것 입 니 다.    스 크 립 트 를 자동 으로 다시 시작 하려 면 다시 시작 해 야 하 는 프로그램 이름 을 test 라 고 가정 합 니 다.프로 세 스 수 를 판단 하여 프로그램 이 정상 인지 여 부 를 판단 합 니 다.ps-ef|grep"$1"|grep-v"grep"|wc Cl 은$1(이 예 에서 test)을 가 져 오 는 프로 세 스 수 입 니 다.스 크 립 트 는 프로 세 스 수 에 따라 다음 작업 을 결정 합 니 다.시스템 에서 지정 한 프로그램의 프로 세 스 수 를 1 초 간격 으로 검사 합 니 다.코드 는 다음 과 같 습 니 다:    스 크 립 트 check #!/bin/sh\#-----------------------------------------------------------------기능:프로 세 스 가 존재 하 는 지 확인 합 니 다\#매개 변수:$1---검사 할 프로 세 스 이름  # 입력 한 인자 가 올 바른 지 확인 합 니 다.  if [ "$1" = "" ];  then    return 1  fi    #$PROCESS_NUM 에서 지정 한 프로 세 스 이름 의 수 를 가 져 옵 니 다.1 로 0 을 되 돌려 줍 니 다.정상 적 이지 않 고 1 로 1 을 되 돌려 줍 니 다.오류 가 있 음 을 표시 합 니 다.다시 시작 해 야 합 니 다.  PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l`   if [ $PROCESS_NUM -eq 1 ];  then    return 0  else    return 1  fi}\#test 인 스 턴 스 가 while[1]에 존재 하 는 지 확인 합 니 다.do CheckProcess "test" CheckQQ_RET=$? if [ $CheckQQ_RET -eq 1 ]; then\#모든 test 프로 세 스 를 죽 이 고 실행 할 동작 을 바 꿀 수 있 습 니 다.  killall -9 test  exec ./test &   fi sleep 1done      스 크 립 트 start:    limit coredumpsize 102400 을 추가 하여 core file 의 크기 를 설정 합 니 다.프로그램 Core Dump 가 있 으 면 흔적 을 찾 을 수 있 습 니 다.이 스 크 립 트 의 배경 에서 check 스 크 립 트 를 실행 하면 많은 번 거 로 움 을 줄 일 수 있 습 니 다.\#!/bin/cshlimit coredumpsize 102400./check &

좋은 웹페이지 즐겨찾기