问题是该进程没有启动。该对象被创建,但是有和没有过程。Popen混淆 - 重定向输出,方法不起作用
如果我在os.kill语句之前放了一个time.sleep(),我失去了控制权。该过程确实开始,但并未被杀死。另外,我的stdout丢失了。我输入的任何东西都没有出现(我想这也是空的)。我不得不关闭终端,打开一个新的,并手工杀掉该进程(从Python和发行,准确的命令执行工作,这是很好的了解)
airodump = subprocess.Popen('airodump-ng -w outputfile mon0',shell=True,stdout=open('/dev/null', 'w'), stderr=open('/dev/null', 'w'))
#time.sleep(5)
os.kill(airodump.pid, signal.SIGTERM) # airodump-ng
#airodump.wait()
print airodump
我试图调用方法POPEN .terminate(),Popen.kill()。我错过了Popen的一些东西......
即使我在“打印airodump”之前放入Popen.wait(),它也会被绕过并打印对象地址。这个小小的怪癖让我深信,在理解发生的事情方面是不对的。
你想要stdout去哪里?你说它已经丢失,但是你发送它'/ dev/null'。 –
我不关心标准输出的位置,只是为了方便。我所需要的只是让airodump运行几秒钟,然后停止(终止进程),然后将功能返回到程序。 – ojef
我所关心的只是生成的文件。我只觉得有趣的是,标准输出发送到null“继续” – ojef