subprocess.call(['/etc/openvpn/easy-rsa/build-key', '-batch'], env={
'SSL_countryName': 'foo',
'SSL_stateOrProvinenceName': 'bar',
# ...and so forth for any other $ENV::* setting you want to override
}, stdin=open('/dev/null', 'r'))
p = subprocess.Popen(['/etc/openvpn/easy-rsa/build-key'], stdin=subprocess.PIPE)
p.communicate('\n'.join(['', '', '', '', '', 'yes', '']))
# ^^
# use one of these for each item you want to press enter to before the "yes"
不要在这里编辑stdin。相反,请打开
openssl.cnf
,并对其进行修改,以从环境中获取所需的所有输入,如下所示:……等等。完成后,在使用参数
^{pr2}$-batch
调用build-key
之前,在您的环境中设置变量。在bash中,可能是这样的:或者,在Python中,可以通过
subprocess.Popen
的参数执行相同的操作:但是,如果真的想要为stdin传递一个自定义流,则可以在不使用任何shell管道的情况下执行此操作:
相关问题 更多 >
编程相关推荐