Я обычно использую очень просто subprocess.check_output
:питон check_output печатает, но не хранит в вар
process = subprocess.check_output("ps aux", shell=True)
print process #display the list of process
Если я боюсь, что есть что-то в stderr
, я использую его так:
process = subprocess.check_output("ps aux 2> /dev/null", shell=True)
print process #display the list of process
Но у меня есть проблема с nginx -V
:
modules = subprocess.check_output("nginx -V", shell=True) #display the result
print modules #empty
modules = subprocess.check_output("nginx -V 2> /dev/null", shell=True) #display nothing
print modules #empty
Почему команда nginx -V
ведут себя по-разному (вся печать в stderr
)? Как я могу разработать esealy обходной путь с `` subprocess.check_output`?
Это может быть, что процесс специально печатая на терминал он запускается на вместо обычных каналов. – languitar