如何在bash脚本中等待从该脚本生成的几个子进程完成并返回退出代码!= 0当任何子进程以代码结束时!= 0?
简单的脚本:
#!/bin/bash
for i in `seq 0 9`; do
doCalculations $i &
done
wait
Run Code Online (Sandbox Code Playgroud)
上面的脚本将等待所有10个生成的子进程,但它总是会给出退出状态0(请参阅参考资料help wait
).如何修改此脚本,以便它发现生成的子进程的退出状态,并在任何子进程以代码!= 0结束时返回退出代码1?
有没有更好的解决方案,而不是收集子流程的PID,按顺序等待它们并总结退出状态?
我正在尝试用Java做一些事情,我需要在while循环中等待/延迟一段时间.
while (true) {
if (i == 3) {
i = 0;
}
ceva[i].setSelected(true);
// I need to wait here
ceva[i].setSelected(false);
// I need to wait here
i++;
}
Run Code Online (Sandbox Code Playgroud)
我想构建一个步序器,我是Java的新手.有什么建议?
我有一个JavaScript代码,我需要添加一个睡眠/等待功能.我正在运行的代码已经在一个函数中,例如:
function myFunction(time)
{
alert('time starts now');
//code to make the program wait before continuing
alert('time is up')
}
Run Code Online (Sandbox Code Playgroud)
我听说可能的解决方案可能包括
setTimeout
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在这种情况下使用它.
我不能使用PHP,因为我的服务器不支持它,虽然使用jQuery会很好.
我们都知道,为了调用Object.wait()
,这个调用必须放在synchronized块中,否则IllegalMonitorStateException
抛出一个.但是这个限制的原因是什么?我知道wait()
释放监视器,但为什么我们需要通过使特定块同步显式获取监视器,然后通过调用释放监视器wait()
?
如果可以wait()
在同步块之外调用,保留它的语义 - 暂停调用程序线程,可能造成的损害是什么?
我有一个PowerShell 1.0脚本来打开一堆应用程序.第一个是虚拟机,其他是开发应用程序.我希望虚拟机在其他应用程序打开之前完成启动.
在bash我可以说 "cmd1 && cmd2"
这就是我所拥有的......
C:\Applications\VirtualBox\vboxmanage startvm superdooper
&"C:\Applications\NetBeans 6.5\bin\netbeans.exe"
Run Code Online (Sandbox Code Playgroud) 我是否可以获得一个完整的简单场景,即教程,建议如何使用它,特别是使用队列?
我在我的程序中使用java中的多线程.我已成功运行线程,但在我使用时Thread.wait()
,它正在抛出java.lang.IllegalMonitorStateException
.我怎样才能使线程等到通知为止?
bash中是否有任何内置功能可以等待任何进程完成?该wait
命令仅允许等待子进程完成.我想知道在继续执行任何脚本之前是否有任何方法可以等待任何进程完成.
这样做的机械方法如下,但我想知道bash中是否有任何内置功能.
while ps -p `cat $PID_FILE` > /dev/null; do sleep 1; done
Run Code Online (Sandbox Code Playgroud) wait ×10
java ×4
bash ×3
sleep ×3
process ×2
concurrency ×1
delay ×1
execution ×1
javascript ×1
jquery ×1
notify ×1
powershell ×1
python ×1
scripting ×1
shell ×1
thread-sleep ×1