linuxでデーモンを開発する場合なので、プロセスを監視するためにpsコマンドなどを手動で打って、生きているかどうか調べることがあります。毎回同じようなことを書いている気がするので、メモしておきます。
sample.sh
# !/bin/bash
function createReport()
{
#ここで終了時に必要な処理を行う
sleep 1
}
function isAlived()
{
ps_name=$1
isAlive=`pidof $ps_name | \
wc -l`
return $isAlive
}
while true
do
ps_name="a.out"
isAlived $ps_name
if [ $? -eq 0 ]; then
echo "$ps_name is not alived"
break
fi
done
echo "report create -> start"
createReport
echo "report create -> end"
sleep 1
echo "finished ..."
このスクリプトでは無限ループでps コマンドを実行してプロセスがいるかどうかを調べて、プロセスがいなくなったら無限ループを抜けるようにしてあります。