python - 在不同的 shell 窗口中启动 2 个并行进程

标签 python shell ubuntu multiprocessing

我有两个功能:都用于在特定端口上启动服务器。就像是:

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/

相关文章:

linux - -bash :/bin/ls: Argument list too long if there is a lot of PATH

Bash 脚本 : only echo line to ~/. bash_profile 如果该行尚不存在

python - 您能解释一下 Python 基础库中奇怪且不一致的函数命名吗?

python - 从 Python 内核调用 C++ CUDA 设备函数

Python bug - 我在 GAE 中随机(很少)遇到这个奇怪的错误

java - activemq/bin目录下没有 "activemq"文件

node.js - 由于node-libcurl,命令 npm install 失败

python - 使用三次样条进行曲线拟合

linux - 将文本文件中的数字与另一个文本文件中的数字列表进行比较

ubuntu - 基于 Debian 系统构建的 ICU 49 加载 libicudata.so 失败