我有两个功能:用于在特定端口上启动Server。类似的东西:
from Multiprocessing import Process
import sys
def start_server1(port1):
os.system("server1 --port %s" % port1)
def start_server2(port2):
os.system("server2 --port %s" % port2)
port1 = arg.sys[1]
port2 = arg.sys[2]
p1 = Process(target=start_server1, args=(port1,))
p2 = Process(target=start_server2, args=(port2,))
这允许我在我的脚本中从terminal
启动两个服务器,如
>>>python servers.py 8000 8001
但是,预计两台服务器都会显示很多跟踪,我希望分别看到它们。所以问题是:如何使脚本从一个terminal
shell执行,进程p1
将在新shell和第二个进程p2
中启动?
感谢您提供建议和建议
答案 0 :(得分:1)
您可以在文件中重定向每个进程的输出。
os.system("server1 --port %s > server1.log" % port1)
然后,在单独的shell中的每个日志上运行tail命令以监视它们。
tail -f server1.log
但是,如果您不想将这些进程的输出存储在文件中并想要单独的shell解决方案,则可以使用“xterm -e”选项。
xterm的-e选项允许在单独的xterm窗口中运行shell命令。
os.system('xterm -e "server1 --port %s"'% port)