跟踪启动路由器设备的终端输出

时间:2018-12-21 20:57:48

标签: python process operating-system

我正在开发一个 python脚本,该脚本重新引导 cisco路由器(访问点),并且我想捕获引导日志。

但是我无法为reboot log设置标题。

设备重新启动时,我试图以这种方式使用子流程模块:

output=subprocess.Popen(ap1.reload_ap(), stdout=subprocess.PIPE).communicate()[0]

ap1.reload_ap()将重新启动设备,但不返回任何内容。

因此,我尝试通过subprocess.PIPE执行脚本后,将进程输出重定向到标准输出,以便在终端上显示启动日志。

但是我无法使用子进程跟踪此启动日志。

是否有其他方法可以将AP启动日志捕获到终端?

1 个答案:

答案 0 :(得分:1)

重新引导系统始于对reboot的系统/内核调用,这就是您的所有过程,整个重新引导过程都发生在内核空间中,这实际上超出了您运行的Python脚本的范围在用户空间中。

所以:

output=subprocess.Popen(ap1.reload_ap(),stdout=subprocess.PIPE).communicate()[0]

您将只能看到重新启动系统调用的输出,仅此而已。

另一方面,在系统关闭所有进程之前终止Python解释器的可能性很高。

您应该阅读How does the system shutdown of a Linux kernel work internally?以获得更好的理解。

替代

您无法以所需的方式获取日志,但是系统仍会生成日志,因此您可以在重启完成后使用Python读取此类日志。这可能会有所帮助:How to find out from the logs what caused system shutdown?

推荐阅读。

What is difference between User space and Kernel space?