2009-11-25 51 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... 
相关问题