Python:从后台子进程获取标准输出

标签 python linux shell background subprocess

我正在尝试使用 python 脚本获取 linux 机器上网络接口(interface)的信息,即“ifconfig -a eht0”。所以我正在使用以下代码:

import subprocess
proc = subprocess.Popen('ifconfig -a eth0', shell=True, stdout=subprocess.PIPE)
proc.wait()
output = proc.communicate()[0]

好吧,如果我用

从终端执行脚本
python myScript.py

或与

python myScript.py &

它工作正常,但是当它在没有事件 shell 的情况下从后台运行(由 crontab 启动)时,我无法获得输出。

有什么想法吗?

谢谢

最佳答案

您是否尝试过使用“屏幕”?

proc = subprocess.Popen('screen ifconfig -a eth0', shell=True, stdout=subprocess.PIPE)

我不确定它是否可以工作。

关于Python:从后台子进程获取标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45432517/

相关文章:

python - Bottle 的 rebase() 和 include() 可以从内存中的模板运行吗?

python pandas系列获取一行的索引号

Python循环练习

c++ - 乱七八糟的是ctime、time.h、sys/time.h

c++ - MsgPack c++ 打包长度超过 32 个字符的字符串[Ubuntu]

java - 从java返回的整数值在shell脚本中变成不同的值

python - 在 mako 表达式中使用按位或

android - 如何将/data/数据文件复制到/sdcard?

php - 从 php 执行时,额外的文本来自 shell_exec 命令

linux - 搜索票务系统、建议