다른 함수를 호출하는 함수를 백그라운드에 넣으면 어떻게 되나요?

다른 함수를 호출하는 함수를 백그라운드에 넣으면 어떻게 되나요?

다른 함수를 호출하는 스크립트에서 프로세스를 백그라운드로 처리하고 준비가 되면 안정적으로 종료하는 방법을 알아내려고 합니다. 이 모든 것을 함수로 옮겨야 합니까?

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

関連情報