![]() |
1
164
|
![]() |
2
243
怎么样:
这将:
|
![]() |
3
55
与GNU并联 http://www.gnu.org/software/parallel/ 它很容易做到:
或者如果你喜欢:
了解更多:
|
![]() |
4
47
你可以使用
它将后台程序pids分配给变量(
|
![]() |
5
9
将错误重定向到单独的日志。 |
![]() |
6
8
有一个非常有用的程序调用nohup。
|
![]() |
7
7
以下是我用来并行运行max n进程的函数(示例中n=4):
如果将max_children设置为核心数,此函数将尝试避免空闲核心。 |
![]() |
8
7
如果您想使用
您可以拥有复杂的流程执行结构,并且所有内容都将以单个
|
![]() |
10
6
最近我遇到了类似的情况,我需要同时运行多个程序,将它们的输出重定向到单独的日志文件,然后等待它们完成,最后我得到如下结果:
来源: http://joaoperibeiro.com/execute-multiple-programs-and-redirect-their-outputs-linux/ |
![]() |
11
4
同时
以下示例:
输出看起来像:
计时显示命令是并行运行的(最后一个命令仅在最初3个命令中的第一个终止后启动,但执行速度非常快)。
这个
注:
|
![]() |
12
2
进程生成管理器 当然,从技术上讲,这些都是进程,这个程序真的应该称为进程生成管理器,但这仅仅是因为bash使用与符号分叉时的工作方式,它使用fork()或clone()系统调用,将其克隆到单独的内存空间中,而不是像pthread_create()这样共享内存的东西。奥里。如果bash支持后者,那么每个“执行序列”的操作都将完全相同,可以称为传统线程,同时获得更有效的内存占用。但是,在功能上,它的工作原理是相同的,虽然有点困难,因为全局变量在每个工作克隆中都不可用,因此使用进程间通信文件和基本的群信号量来管理关键部分。当然,从bash中分叉是这里的基本答案,但我觉得人们似乎知道这一点,但实际上是在管理什么是生成的,而不是仅仅把它分叉然后忘记。这演示了一种管理最多200个分叉进程实例的方法,所有这些实例都访问单个资源。很明显,这太过分了,但我喜欢写它,所以我继续写下去。相应地增加终端的大小。希望你觉得这个有用。
|
![]() |
13
-1
用 巴什杰 ( https://sourceforge.net/projects/bashj/ )您不仅可以运行多个 过程 (其他人的建议)但也有很多 螺纹 在一个由脚本控制的JVM中。当然,这需要一个JAVA JDK。线程消耗的资源比进程少。 以下是工作代码:
|
|
Batavia · Bash-删除大目录中的文件 1 年前 |
![]() |
stackbiz · 如何在bash中将所有换行符替换为“\n” 1 年前 |
![]() |
Paul · Bash wait命令忽略指定的进程ID 2 年前 |