2013-04-04 21 views
0

我想在自己的工作中自動執行代碼。有5個階段,它在總:Linux:並行進程和依賴項

  1. 吸收
  2. 主編譯
  3. 二次編譯
  4. 數據庫部署
  5. 後編譯

我希望做的是開闢什麼三個GNOME終端窗口,並且在第一個窗口中僅運行階段1,在第二個窗口階段2和3中以及在第三個窗口階段4和5中運行。

下面是如何啓動從終端GNOME終端的例子(它留開!):

gnome-terminal \ 
--title="UPTAKE" \ 
--working-directory="$DIR" \ 
--command="bash -c \"echo CODE UPTAKE STARTING... ; \ 
exec bash\"" \ 

這裏的踢球者:我希望在同一時間開始階段2和4(並行),但只有在階段2成功時才運行階段3(很像Linux中的'Stage2 & &階段3'命令),並且僅在階段4成功時才運行階段5。

我是Linux的新手,似乎有太多的方法來啓動並行進程,我不知道選擇哪個進程。我完全不知道如何通過滿足上述所有條件來完成我的任務。任何意見,將不勝感激。

編輯:是否有可能從一個現有的終端傳遞信號到另一個? (即,一個終端等待另一個完成的任務。)

+0

也許你可以寫一些Python腳本做任務... – 2013-04-04 19:31:12

+0

不幸的是,我到Python的訪問權限。而我在Python方面的知識要比在Linux中稍遜一籌。 – 2013-04-04 19:36:29

+0

這只是'stage1; (stage2 && stage3)&(stage4 && stage5)'(儘管在單個終端中) – Ingo 2013-04-04 19:37:18

回答

5

我在Linux的

所以新手,請大家一個建議:人恨它,當終端窗口彈出並沒有消失一個真正的原因。只需編寫一個簡單的shell腳本來實現您的任務,以便它可以在任何終端窗口中工作,而不僅僅是gnome-terminal。

一開始,你所描述的邏輯是寫在貝這樣的:

stage1; (stage2 && stage3) & (stage4 && stage5) 
+0

正確,這似乎是正確的邏輯。我不知道'&'角色,這對我來說很重要。謝謝。 – 2013-04-05 13:48:29

+0

至於終端,我意識到你的觀點,但因爲只有我會使用它,所以我想用這種方法來試試看它是否可行。爲了做事。 :) – 2013-04-05 13:56:36