
백그라운드에서 프로세스를 시작하고 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 &