프로세스가 '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년 동안 성공적으로 실행된 이 프로그램의 출력을 확인하십시오 . 저는 이 문제를 두 번만 발견했는데, 두 달 모두 지난 두 달 안에 발생했습니다.

# 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.

관련 정보