다른 함수를 호출하는 스크립트에서 프로세스를 백그라운드로 처리하고 준비가 되면 안정적으로 종료하는 방법을 알아내려고 합니다. 이 모든 것을 함수로 옮겨야 합니까?
function dosomething {
while :
do
printsomething "doing something"
done
}
function printsomething {
echo $@
}
function otherfunction {
dosomething &
TMP_PID=$!
}
function killsomething {
quit_test=`ps -p "$TMP_PID" | sed '1d' | awk '{print $1}'`
if [ "$quit_test" != "" ] ; then
(kill $TMP_PID >/dev/null)
fi
}
## MAIN
TMP_PID=""
echo "starting program"
otherfunction
sleep 5s
killsomething