問題是該進程沒有啓動。該對象被創建,但是有和沒有過程。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