bash:后台进程无法在没有睡眠命令的情况下工作

时间:2018-02-02 19:37:07

标签: bash

我有一个bash脚本,其中包含很多背景进程。

最后我有以下背景命令

export DISPLAY=:0.0 && xterm -T "PQXYMNLHARE" -hold  -e "sh /home/simha/.public_html/openmpv.sh \"000-${today}-${filename}\"" &

sh /home/simha/.public_html/openmpv.sh "000-${today}-${filename}" &

注意:今天和文件名在脚本中定义

根本没用。令人惊讶的是,我在同一个脚本中多次调用同一个命令,然后打开xterm。但是这条终点线没有打开。

经过数小时的努力后,我才尝试了

export DISPLAY=:0.0 && xterm -T "PQXYMNLHARE" -hold  -e "sh /home/simha/.public_html/openmpv.sh \"000-${today}-${filename}\"" &
sleep 10

或者

export DISPLAY=:0.0 && xterm -T "PQXYMNLHARE" -hold  -e "sh /home/simha/.public_html/openmpv.sh \"000-${today}-${filename}\"" &
wgetpid5=$!
while true
do
    if kill -0 "$wgetpid5"
    then
        echo "working"
    else
        echo "closed"
        break;
    fi
done

或者

export DISPLAY=:0.0 && xterm -T "PQXYMNLHARE" -hold  -e "sh /home/simha/.public_html/openmpv.sh \"000-${today}-${filename}\"" &
wgetpid5=$!
if kill -0 "$wgetpid5"
then
    sleep 1;
else
    echo "jalsdjlkj"
fi

然后xterm打开并执行脚本。

其中:

export DISPLAY=:0.0 && xterm -T "PQXYMNLHARE" -hold  -e "sh /home/simha/.public_html/openmpv.sh \"000-${today}-${filename}\"" &
echo "textttt"

OR

export DISPLAY=:0.0 && xterm -T "PQXYMNLHARE" -hold  -e "sh /home/simha/.public_html/openmpv.sh \"000-${today}-${filename}\"" &
wgetpid5=$!
if kill -0 "$wgetpid5"
then
    echo "worked" #Note replace sleep with echo
else
    echo "jalsdjlkj"
fi

或直接命令而不是xterm

sh /home/simha/.public_html/openmpv.sh "000-${today}-${filename}" &

以上都没有工作

问题是什么。我很无能。

只有睡眠或while循环才能使命令正常工作。

0 个答案:

没有答案