gpt4 book ai didi

Python Popen shell 脚本但失败

转载 作者:行者123 更新时间:2023-11-30 23:03:19 24 4
gpt4 key购买 nike

我想执行bash命令

 '/bin/echo </verbosegc> >> /tmp/jruby.log'

在Python中使用Popen。该代码不会引发任何异常,但执行后 jruby.log 不会发生任何更改。 python代码如下所示。

>>> command='/bin/echo </verbosegc> >> '+fullpath
>>> command
'/bin/echo </verbosegc> >> /tmp/jruby.log'
>>process = subprocess.Popen(command.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True)
>>> output= process.communicate()[0]
>>> output
'</verbosegc> >> /tmp/jruby.log\n

我还打印出 process.pid,然后使用 ps -ef | 检查 pid grep PID。结果显示进程pid已经执行完毕。

最佳答案

如果要将输出附加到文件,只需使用 pass 文件对象,除非设置 shell=True,否则无法重定向到文件:

command = ['/bin/echo', '</verbosegc>']

with open('/tmp/jruby.log',"a") as f:
subprocess.check_call(command, stdout=f,stderr=subprocess.STDOUT)

关于Python Popen shell 脚本但失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34162320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com