JSparrow (sparrowj) wrote in linux_il_ru,
JSparrow
sparrowj
linux_il_ru

Помогите разобраться

Скрипт setup_env.sh:
export JOB_KEY=WQWQWW12121KKJHKHK9898KJKJHV
PSCMD=`ps ax | grep -v grep | grep $JOB_KEY`
PID=''
if [ -n $PSCMD ]
then
    PID=`echo $PSCMD | awk '{print $1}'`
fi

Скрипт launch_job.sh:
#!/usr/bin/ksh
. setup_env.sh
if [ -z $PID ]
then
    echo 'Starting reco job...'
    nohup reco_job.sh $JOB_KEY &
else
    echo "Job is already running with PID $PID"
fi

Скрипт reco_job.sh:
#!/usr/bin/ksh
trap exithandler 3
exithandler()
{
echo 'Received QUIT'
keeplooping=0
}
keeplooping=1
while [[ $keeplooping -eq 1 ]] ; do
echo 'going to sleep..'
sleep 10
echo 'waking up..'
done
echo 'exiting...'

Скрипт stop_job.sh:
#!/usr/bin/ksh
. setup_env.sh
if [ -z $PID ]
then
    echo "Job is not running"
else
    echo "Sending sig QUIT to process PID $PID"
    kill -3 $PID
fi

Проблема: Если запускать reco_job.sh скриптом launch_job.sh, то процесс reco_job.sh на kill -3 pid не реагирует.
А если запускать непосредственно командой nohup reco_job.sh $JOB_KEY & с консоли или командой ". launch_job.sh" то все работает. В чем проблема и что подправить в скрипте ланча чтоб сигнал обрабатывался.
Спасибо.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 12 comments