
バックグラウンドでプロセスを起動し、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
1つの方法は次のとおりです。
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 &