LINUX.ORG.RU

Стратегия такая

PROG="myprog" $PROG&

pid=a

while pid do; pid = `ps -ax |grep $PROG" done;

и потом mail -a heared -s Subject vasia@pupkin < "Warning message"

anonymous
()

Например:

#!/bin/sh
#
# is_present_prog.sh <progname>
#
# Ищем по имени в процессах и выделяем PID (может быть несколько)
pids=`ps -ax | grep $1 | cut -d' ' -f 2`
# Хотя, выделять PID, для твоей задачи было бы необязательно :)
# Заодно, время:
ttime=`date`
# Обрабатываем полученное --
# Проверяем на пустоту:
if [ -z '$pids' ]; then
# если пусто -- шлём письмо:
  echo "$ttime Not found $1" | mail -s "Not found $1" you@your_adress
fi
#

Просто.

anonymous
()

Не знаю, зачем именно по PID'у сечь, можно так:

PROG="program"
$PROG
echo "$PROG died with $? exit status." |
mail -s "$PROG died" root@localhost

Если очень нужен PID, то можно так:

PROG="program"
$PROG &
PROG_PID=$!
wait $!
echo "$PROG (pid $PROG_PID) died with $? exit status." |
mail -s "$PROG died" root@localhost

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от anonymous

>pids=`ps -ax | grep $1 | cut -d' ' -f 2`

Немного корректней: pids=`ps -ax | grep $1 | grep -v grep | cut -d' ' -f 2`

Что бы сам grep не попадал в список.

qwe ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.