2009-11-25 68 views
1

我試圖模擬一個由多個客戶端和服務器組成的網絡。我寫了包含客戶端 - 服務器代碼的node.py。我想運行多個實例node.py.但是我不想手動執行它,所以我編寫了另一個文件spawn.py,它使用fork和exec生成多個node.py實例。但是,我需要在不同的終端(shell)上運行node.py的每個實例,以便輕鬆調試每個節點內發生的事情。 我們該怎麼做?請幫忙。Python:fork和exec一個進程在不同的終端上運行

編輯:我的工作在Linux和使用python 2.5和 我想在同一個盒子

+0

「在不同的終端(shell)上運行node.py的每個實例」請說明如何通過命令行或使用shell腳本「手動」執行此操作。我不清楚你在說什麼。 – 2009-11-25 11:48:31

+0

@洛特,如果我想啓動3個節點,我在3個不同的終端上鍵入'python node.py '。我想要使​​用shell腳本或使用另一個python程序spawn.py來做同樣的事情。 – atv 2009-11-25 14:36:47

+0

@atv:所以你不能從一個終端手動做到這一點?你不能使用RSH或SSH或PUTTY來做到這一點? – 2009-11-25 16:51:39

回答

1

運行的所有進程。如果你想「真實」(僞;-)終端,並使用X11(幾乎Linux上的每個GUI界面都可以;-),您可以執行xterm -e python node.py而不是僅僅使用python node.py - 替代xterm您喜歡的任何終端仿真器程序當然(我確定它們都具有相當於命令行開關好老的xterm的-e,指定他們應該運行的程序! - )。

+0

@alex,非常感謝..但多了一個問題 的xterm -e python.py只是打開一個終端 如果我寫這樣的xterm -e python.py 101 的xterm -e python.py 102 shell腳本 它只打開1個終端等待prog完成,然後打開第二個終端:(如何一次打開所有終端? – atv 2009-11-25 06:53:04

+0

在後臺啓動它們(追加'&'到shell命令)。 – 2009-11-25 08:36:51

0
shell #1: 
for p in 1 2 3 4 5 
do 
    python node.py > $p.log 2>&1 
done 


shell #2: 
tail -F 1.log 

shell #3: 
tail -F 2.log 

etc... 
相關問題