如何在后台启动进程并检查它何时在 bash 脚本中结束?我的想法是这样的脚本:
launch backgroundprocess &
while [ Process is running ];do
echo "PROCESS IS RUNNING\r"
done;
echo "PROCESS TERMINATED"
Run Code Online (Sandbox Code Playgroud)
Pas*_*iel 94
关键是“等待”命令:
#!/bin/bash
/my/process &
/another/process &
wait
echo "All processes done!"
Run Code Online (Sandbox Code Playgroud)
Mir*_*ici 46
有了wait
你可以有粒度,您需要:
sleep 1 &
PID1=$!
sleep 2 &
PID2=$!
wait $PID1
echo 'PID1 has ended.'
wait
echo 'All background processes have exited.'
Run Code Online (Sandbox Code Playgroud)
cuo*_*glm 35
这是一种方法:
launch backgroundprocess &
PROC_ID=$!
while kill -0 "$PROC_ID" >/dev/null 2>&1; do
echo "PROCESS IS RUNNING"
done
echo "PROCESS TERMINATED"
exit 0
Run Code Online (Sandbox Code Playgroud)