我有两个功能:都用于在特定端口上启动服务器。就像是:
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
?感谢您的建议和建议
最佳答案
您可以重定向文件中每个进程的输出。
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)
关于python - 在不同的 shell 窗口中启动 2 个并行进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31603786/