Processo não listado em “ps -ef” (AIX 7.1)

Processo não listado em “ps -ef” (AIX 7.1)

Tenho um problema incomum envolvendo a saída do ps -efcomando no AIX 7.1.

Um script de shell monitora processos analisando essa saída. Notei em duas ocasiões que um processo (um programa Perl) foi omitido desta lista. Tudo que li sobre o assunto diz que isso não é possível. O programa em questão inicia via crontab às 6h e vai até as 23h, quando é encerrado automaticamente. Verifiquei a saída ps -efimediatamente após ser omitida pelo script do monitor e ela exibe:

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

... o que significa que é o mesmo processo iniciado às 6h. O programa não foi encerrado e reiniciado.

O que está fazendo com que ele seja omitido da ps -efsaída?

Este é o programa que examina o resultado do ps -ef, que está em execução com sucesso há cerca de cinco anos. Só notei esse problema duas vezes, mas ambos ocorreram nos últimos 2 meses:

# 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

Além disso, nossa instalação do AIX não possui o pgrep.

informação relacionada