プロセスが「ps -ef」にリストされていない(AIX 7.1)

プロセスが「ps -ef」にリストされていない(AIX 7.1)

ps -efAIX 7.1では、コマンド出力に関連した異常な問題が発生しました。

シェルスクリプトはこの出力を解析してプロセスを監視します。私はこのリストからプロセス(Perlプログラム)が省略されたことを2回見つけました。私がこのトピックについて読んだすべての内容は、これが不可能であることを示唆しています。プログラムは午前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回だけ発見しましたが、両方とも過去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

ベストアンサー1

おすすめ記事