我正在尝试使用python脚本在linux机器上获取网络接口的信息,即'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 &
它运行正常,但是当它从背景(由crontab启动)运行而没有活动shell时,我无法获得输出。
有什么想法吗?
由于
答案 0 :(得分:1)
您是否尝试使用“屏幕”?
proc = subprocess.Popen('screen ifconfig -a eth0', shell=True, stdout=subprocess.PIPE)
我不确定它是否可行。
答案 1 :(得分:0)
尝试proc.stdout.readline()而不是通信,也可以帮助subprocess.Popen()中的stderr = subprocess.STDOUT。请发布结果。
答案 2 :(得分:0)
我找到了问题的解决方案,我想系统在crontab执行时无法识别函数ArrayIndexOutOfBoundsException
。因此,添加子进程的完整路径可以使脚本正确执行:
builder.setContentTitle(title);
notificationManager.notify(0, builder.build());
现在我可以管理输出字符串了。
由于