我正在尝试用os模块中的execve()方法生成新的进程。我需要产生新的进程,并在另一个目录中做一些事情,但我不会改变。
代码:
import os
os.execve('/bin/ls', ['/bin/ls'], {'PATH': '/tmp'})当我运行这段代码时,我得到的是我所在目录的内容,而不是/tmp目录的内容。我哪里做错了?我不能使用os.chdir()或改变运行命令的方式(如使用模块subprocess)
发布于 2017-10-03 23:43:07
在调用execve()之前更改当前工作目录。新流程将继承CWD。
import os
os.chdir('/tmp')
os.execve('/bin/ls', ['arg1', 'arg2'], {'PATH': 'is_inherited_anyway'})https://stackoverflow.com/questions/46548157
复制相似问题