- 论坛徽章:
- 0
|
我的方法是
(cmd args && echo $? > /tmp/cmd.ec) &
miniqq 发表于 2010-02-08 13:02 ![]()
这个不错,也适用于多个后台进程,然后父进程可以loop 着去check status,并根据返回值做一些动作
rm /tmp/cmdreturn.1 /tmp/cmdreturn.2 /tmp/cmdreturn.3
(sleep 5 && echo $? > /tmp/cmdreturn.1 ) &
(sleep 8 && echo $? > /tmp/cmdreturn.2 ) &
(sleep 2 && echo $? > /tmp/cmdreturn.3 ) &
while [ -z "$cmdreturn1" -o -z "$cmdreturn2" -o -z "$cmdreturn3" ] ; do
if [ -f /tmp/cmdreturn.1 ] ; then
cmdreturn1=`</tmp/cmdreturn.1`
fi
if [ -f /tmp/cmdreturn.2 ] ; then
cmdreturn2=`</tmp/cmdreturn.2`
fi
if [ -f /tmp/cmdreturn.3 ] ; then
cmdreturn3=`</tmp/cmdreturn.3`
fi
echo "cmdreturn1 cmdreturn1 cmdreturn2: $cmdreturn2 cmdreturn3: $cmdreturn3"
sleep 1
done |
|