2014-10-02 21 views
0

是否有任何种类的程序或脚本可以手动排列Ubuntu上的应用程序进程?例如,有40个进程在特定的时间点运行,另外还有10个进程会在一段时间后运行。无论如何,我可以告诉系统在同一时间运行例如10个中的3个,并且在他们完成之后按特定顺序每次运行剩余的7个?如何手动排队进程

回答

1

您可以使用作业感知shell(zshbash)获得该结果。

例如在bash

# run first 3 apps in background and in parallel 
app1 & 
app2 & 
app3 & 
# wait for all background jobs to finish 
wait 
# run the remaining apps in specified order 
app4 
app5 
... 

&方式在后台运行的程序(即你得到另一个shell提示程序启动的时刻)。所有后台工作并行运行。但是,后台作业无法访问标准输入(即,您无法为它们提供键盘输入 - 您可以通过首先将其置于前台,但这是另一回事)。

+0

谢谢isedev。这个shell是否有可能知道这个队列,这取决于进程来自哪个用户?例如,如果有3个人同时使用pc,并且我希望user1和user2不在队列中等待,但是我希望user3连续执行或者甚至阻止他的进程?也有可能使其自动化(就像让它自己排队而不用手动执行)? – und3rd06012 2014-10-02 19:35:26

+0

这是一个非常广泛的问题,它取决于很多事情 - 首先想到的是“工作如何提交”。 shell提供编程功能(流量控制,变量等),以便您可以实现您所需的功能。 – isedev 2014-10-02 19:38:12

+0

是否有可能为我指出一本书或一个在线资源,我可以在其中编写shell的这些编程功能? – und3rd06012 2014-10-02 19:54:53