Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何手动将进程排队_Linux_Process_Ubuntu 14.04_Queuing - Fatal编程技术网

Linux 如何手动将进程排队

Linux 如何手动将进程排队,linux,process,ubuntu-14.04,queuing,Linux,Process,Ubuntu 14.04,Queuing,有没有什么程序或脚本可以让我在Ubuntu上手动对应用程序的进程进行排队?例如,有40个进程在特定时间点运行,还有10个进程将在一段时间后运行。我是否可以告诉系统在同一时间运行,例如,10个进程中的3个进程,并在它们完成后,以特定顺序一次运行剩下的7个进程?您可以使用作业感知shell来实现这一结果(zsh,bash) 例如在bash中: # run first 3 apps in background and in parallel app1 & app2 & app3 &am

有没有什么程序或脚本可以让我在Ubuntu上手动对应用程序的进程进行排队?例如,有40个进程在特定时间点运行,还有10个进程将在一段时间后运行。我是否可以告诉系统在同一时间运行,例如,10个进程中的3个进程,并在它们完成后,以特定顺序一次运行剩下的7个进程?

您可以使用作业感知shell来实现这一结果(
zsh
bash

例如在
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提示)。所有后台作业并行运行。但是,后台作业无法访问标准输入(即,您不能为它们提供键盘输入-您可以,首先将其置于前台,但这是另一回事)。

谢谢isedev。这个shell是否可能知道根据进程来自的用户进行排队?例如,如果有3个人同时使用pc,我希望user1和user2不在队列中等待,但我希望user3串行执行,甚至暂停其进程?还有可能让它自动化(比如让它自己排队而不用手动完成)?这是一个非常广泛的问题,它取决于很多事情-首先想到的是“作业是如何提交的”。shell提供了编程功能(流控制、变量等),因此您可以实现所需功能。您是否可以向我提供一本书或在线资源,我可以从中了解shell的这些编程功能?手册页(例如
man bash
)提供了一个很好的参考。这可能是一个很好的介绍。否则,谷歌
bash编程
zsh编程
。那里应该有很多东西。谢谢你的宝贵帮助。祝你度过愉快的一天!