0
我必須運行三個阻塞的linux命令(command1,command2 & command3),並且我實現了同步,以便如果用戶在terminal1中執行command2時使用terminal2而我的服務器返回一個錯誤稱command1仍在執行。與command3相同。但如果我做一個像下面的循環在後臺運行linux命令的同步問題
for i in {1..3}; do { command$i & }; done
所有三個開始執行並行是不受歡迎的。這是同步故障還是我不應該用這種方式運行這些命令?在後臺運行命令與在不同終端運行命令不同嗎?
我覺得我錯過了一些明顯的東西。請賜教。
我明白這一點。但我的問題是他們爲什麼要開始呢?這是我的同步錯誤嗎?如果我嘗試在command1仍在執行時使用不同的終端來運行command2,我會得到預期的錯誤,說明command1仍在執行。 – yalkris 2014-09-04 17:44:58
工作2在工作1中正在進行的任何同步建立之前就開始了。要旨? – seanmcl 2014-09-04 17:47:28
對不起,我感到困惑。我不希望他們順序運行。我的問題純粹是強制執行同步,所以它們在並行運行時失敗。我相應地編輯了我的問題。 – yalkris 2014-09-04 18:19:25