预测:fork:无法分配内存

预测:fork:无法分配内存

使用多个 bash 并行进程:

process1 &
...
process30 &

在每个进程中随机执行多个 git 操作将产生:

 fork: Cannot allocate memory

系统是 CentOS 7,没有交换,我希望能够等到安全后再启动下一个进程。最好的方法是什么?

答案1

就像您执行的那样,它将并行启动所有进程,并将它们置于后台。这就是符号 ( &) 的作用。

在这种情况下,请按顺序运行命令,即一个接一个地运行命令。

为此,请使用分号 ( ;) 或新行分隔每个进程,但不使用最后的与符号,如下所示:

process1; process2; ... ; process30

或者

process1
...
process30

如此一来,就会启动process1,当它结束时就会启动process2,当process2结束时就会启动process3,以此类推,直到process30。

如果您只想在当前命令没有失败时运行下一个命令,则使用两个与号 ( &&) 分隔命令,如下所示:

process1 && process2 && ... && process30

相关内容