javascript - Python 中的命令输出(stdout、stderr)到网络

标签 javascript python websocket

最近,我使用 Flask 框架开发了一个简短的 Python 脚本,通过 HTTP 启动进程(请参阅 here )。现在的问题是,需要一种适当的技术来将已启动进程的标准流(我对 stdout 和 stderr 特别感兴趣)“通过管道传送”到 Web。

您认为实现这一目标最合适的方法是什么?首先我想到了 websocket 来完美适配。但在我看来,大多数实现都掩盖了其连接的客户端。我认为我需要这些信息才能将输出发送给所有人。

编辑:我认为我的问题有点不清楚:我想在网络界面中查看执行命令的输出。因此,我必须通过 HTTP 以某种方式将执行进程的 stdout/stderr 中的数据“传送”到 Web 界面。启动的命令可能会运行一段(更长)时间。调用 dd 命令的示例不具有代表性,因为它在给定设置中不输出任何内容。当然,我必须使用 subprocess.Process 类和对象的输出(例如,通过使用 communicate() 方法)。

最佳答案

不太清楚你的目标是什么。你的代码有这个。也许这是一个线索?

   current_app.process = subprocess.Popen(
            ['dd', 'if=/dev/zero', 'of=/dev/null'])

在文档中查找子流程。您会发现可以指定 stdout 和 stderr。 http://docs.python.org/library/subprocess.html#module-subprocess

一种策略可能是将 stdout/err 捕获到文件,然后将该文件重写到您的 http 响应。

关于javascript - Python 中的命令输出(stdout、stderr)到网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11075461/

相关文章:

python - Matplotlib,关闭循环的按钮,python

python - 两个列表到一个字典

python - 在pyqt中模拟鼠标移动

spring-boot - 带有 Spring-boot 后端的 Flutter websocket

javascript - 为什么我收到 ajax 请求发送的空数据?

javascript - 我对长轮询的实现是否正确?

javascript - 如何从 firebase 数据库中提取部分数据

将网络摄像头/相机视频流上传到服务器的 HTML5 解决方案

python - Flask-Login + Flask-Sockets = 困惑

javascript - 如何使用 angularjs 发布 JSON 数据