首页 > 解决方案 > 如何只等待一定的时间让系统调用运行

问题描述

我正在 python 中制作一个简单的 ping 脚本,并希望添加用于获取已启动 IP 的主机名的功能。为此,我得到nmblookup -A {ip}using的输出os.popen,并解析输出。我遇到的问题是,对于 nmblookup 不起作用的系统(例如路由器),该命令需要很长时间才能得到错误,而当该命令成功运行时,它会在一秒钟内重新运行结果。我的问题是如何只等待 N 秒让nmblookup命令返回某些内容,如果没有,继续执行程序?PS,这都是在linux中。

标签: python-3.xlinux

解决方案


您可以在命令前加上 timeout。请参阅它的手册页

你可以做一个 Popen 并运行你的命令

root@ak-dev:~# timeout 1 sleep 20
root@ak-dev:~# echo $?
124

推荐阅读