跟踪引导路由器设备的终端输出

2024-10-02 20:35:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个python脚本,它重新启动一个cisco路由器(接入点),我想捕获引导日志

但是我不能控制这个{}

当设备重新启动时,我尝试的是以以下方式使用子流程模块:

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

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

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

但是,我无法使用子进程跟踪此引导日志

是否有任何方法可以将AP引导日志捕获到终端或以其他方式捕获


Tags: 模块脚本终端output进程方式路由器流程
1条回答
网友
1楼 · 发布于 2024-10-02 20:35:30

重新启动一个系统是从对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?

相关问题 更多 >