"ps -ef"에 나열되지 않은 프로세스(AIX 7.1)

"ps -ef"에 나열되지 않은 프로세스(AIX 7.1)

ps -efAIX 7.1의 명령 출력과 관련하여 특이한 문제가 있습니다 .

쉘 스크립트는 이 출력을 구문 분석하여 프로세스를 모니터링합니다. 나는 이 목록에서 프로세스(Perl 프로그램)가 두 번 생략된 것을 발견했습니다. 내가 이 주제에 대해 읽은 모든 내용은 이것이 불가능하다고 말합니다. 문제의 프로그램은 오전 6시에 crontab을 통해 시작되어 오후 11시까지 실행되다가 자체 종료됩니다. ps -ef모니터 스크립트에서 생략된 직후 의 출력을 확인했는데 다음과 같이 표시됩니다.

user  1249864  9569338   0 06:00:00   -  0:19 /usr/bin/perl -w /path/to/omittedProgram.pl

... 이는 오전 6시에 시작된 프로세스와 동일하다는 것을 의미합니다. 프로그램이 종료되지 않았다가 다시 시작되었습니다.

출력 에서 생략되는 원인은 무엇입니까 ps -ef?

ps -ef약 5년 동안 성공적으로 실행되어온 의 출력을 검사하는 프로그램입니다 . 저는 이 문제를 두 번만 발견했는데, 둘 다 지난 2개월 동안 발생했습니다.

# set global variables
PROCESS_FILE=/tmp/processList.txt
TEMP_FILE=/tmp/greppedProcesses.tmp
BOX=`uname -n`
DATE=`date`
EMAIL_LIST="[email protected]"

# Get list of running processes
ps -ef > $PROCESS_FILE

checkProcess() {
  PROCESS_NAME=$1
  PROCESS_ABBREVIATION=$2
  PROCESS_COUNT=$3
  UNIQUE_PROCESS_IDENTIFIER=$4

  GREPPED_LINES=$TEMP_FILE-$PROCESS_ABBREVIATION
  grep $UNIQUE_PROCESS_IDENTIFIER $PROCESS_FILE | grep -v grep > $GREPPED_LINES
  NUM=`cat $GREPPED_LINES | wc -l`
  if [[ $NUM -ne $PROCESS_COUNT ]]
     # Incorrect number of processes running!
     then MESSAGE=`printf "The \"$PROCESS_NAME\" process count is %1d, but it should be $PROCESS_COUNT!!!" $NUM`
          echo "Monitor - starting on $DATE\n\n$MESSAGE\n\n`cat $GREPPED_LINES`" | mail -s "Problem with $PROCESS_NAME on $BOX" $EMAIL_LIST
  fi
  # Delete the temp file
  rm $GREPPED_LINES
}

checkProcess "Full Name of Program" "Program Abbreviation" <expected number of processes running> "Unique string to identify program in ps output"
checkProcess ... (for other processes) ...

exit 0

또한 AIX 설치에는 pgrep.

관련 정보