我必须运行三个阻塞linux命令(command1、command2和command3),并且我实现了同步,这样如果用户使用terminal2运行command2,而command1在terminal1中执行,我的服务器会返回一个错误,指出command1仍在执行。命令3 也一样。但是如果我做一个像下面这样的循环
for i in {1..3}; do { command$i & }; done
所有三个都开始并行执行,这是不希望的。这是同步错误还是我不应该以这种方式运行这些命令?在后台运行命令与在不同终端中运行命令不一样吗?
我觉得我在这里遗漏了一些明显的东西。请赐教。
最佳答案
& 符号将作业置于后台,该作业会立即返回并具有并行运行它们的效果。要连续运行它们,请删除 &。
关于linux - 在后台运行 linux 命令的同步问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25671790/