Bash等待进程启动

前端之家收集整理的这篇文章主要介绍了Bash等待进程启动前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图对Bash说,等待进程开始/开始.我正在尝试这种方式,例如:
notepad=`pidof notepad.exe`
    until [ $notepad > 0 ]
        do
            taskset -p 03 $notepad
            renice -n 5 -p $notepad
            sleep 5
            renice -n 0 -p $notepad
        done

我有以下问题:

>为什么这会生成一个名为“0”的文件(文件为空)
我不想创建一个新文件,只需等待PID检查执行.
>这是一个循环,但如果2个命令执行correclty,则为1次
我怎么能继续做?
>为此更好地使用“直到或”?
>等待过程开始或开始的另一个想法???

您的代码存在多个问题:

>如果没有进程,pidof不会打印0或-1,因此您的逻辑错误
>如果有多个进程,pidof可以返回多个pid,这会破坏您的比较
>>必须在[]中转义,否则您的代码相当于[$notepad]> 0,指向文件.
>>甚至不是合适的操作符.你想要-gt,但正如第1点和第2点所述,你不应该比较数字.
>直到运行循环直到条件为真.它不等待条件成为真,然后运行循环.

这是你应该怎么做的:

# Wait for notepad to start
until pids=$(pidof notepad)
do   
    sleep 1
done

# Notepad has now started.

# There could be multiple notepad processes,so loop over the pids
for pid in $pids
do        
    taskset -p 03 $pid
    renice -n 5 -p $pid
    sleep 5
    renice -n 0 -p $pid
done

# The notepad process(es) have now been handled
原文链接:https://www.f2er.com/bash/387105.html

猜你在找的Bash相关文章