백그라운드 프로세스를 시작하고 종료 시점을 확인하세요.

백그라운드 프로세스를 시작하고 종료 시점을 확인하세요.

백그라운드에서 프로세스를 시작하고 bash 스크립트에서 프로세스가 끝나는 시점을 확인하는 방법은 무엇입니까? 내 생각은 다음과 같은 스크립트입니다.

launch backgroundprocess &
while [ Process is running ];do
   echo "PROCESS IS RUNNING\r"
done;

echo "PROCESS TERMINATED"

답변1

핵심은 "wait" 명령입니다.

#!/bin/bash

/my/process &
/another/process &
wait
echo "All processes done!"

답변2

wait원하는 만큼 세분성을 가질 수 있습니다 .

sleep 1 &
PID1=$!
sleep 2 &
PID2=$!

wait $PID1
echo 'PID1 has ended.'
wait
echo 'All background processes have exited.'

답변3

한 가지 방법은 다음과 같습니다.

launch backgroundprocess &
PROC_ID=$!

while kill -0 "$PROC_ID" >/dev/null 2>&1; do
    echo "PROCESS IS RUNNING"
done
echo "PROCESS TERMINATED"
exit 0

답변4

nohup을 사용하여 프로세스를 실행하고 nohup이 로깅에 사용하는 nohup.out 파일을 읽는 쉘 스크립트를 작성할 수 있습니다.

  nohup command &

관련 정보