我正在为Ubuntu编写和AppIndicator for Popular NodeJS Server" MeteorJS"应该列出可用的项目并启动服务器,当它启动服务器时,它会得到它的终端输出并对它们做出反应。
当你启动meteor时,它会根据发生的情况提供一些输出。例如,当您更改代码时,它会输出"changed restarting..."
或当您再次更改"changed restarting... (2x)"
时很好,但是当它出现错误时会输出一些错误消息。
除非您的桌面上没有足够的空间来查看该终端,否则这很好。
所以我编写了一个应该以另一种方式通知我这些消息的应用程序。
我的实际问题:
我需要从python程序启动服务器,而我可以对服务器在其标准输出时写入的输出做出反应。
所以我想
答案 0 :(得分:1)
您可能需要查看以下功能的线程,然后找出如何使其成为“事件驱动”。
但这就是我在后台运行bash脚本并在我对它感兴趣时获取输出的方法。
# To test it out, run the script and then turn your wifi off and on.
import subprocess
def tail():
command = ["tail", "-f", "/var/log/wifi.log"] # your bash script execute command goes here
popen = subprocess.Popen(command, stdout=subprocess.PIPE)
for line in iter(popen.stdout.readline, ""):
yield line,
logger = tail()
for line in logger:
print line
答案 1 :(得分:0)
你可能想要一个pty。它可以从应用程序接收输出,您可以从中读取并按照您的需要进行操作。
这是一个Python示例。它只是将所有内容记录到文件中并将其发送到终端。它基本上类似于脚本(1),但带有可选的带时间戳的输出文件。 http://stromberg.dnsalias.org/~strombrg/pypty/
HTH