我正在尝试运行 vnc 服务器,但为了首先执行此操作,我需要运行“模块加载 vnc”。
如果我调用which module
加载的 bash shell,则找不到的命令是 PATH 但同时它是可用的。看起来该命令是内置的。
换句话说,看起来我需要一次执行两个命令,module load vnc;vncserver :8080 -localhost
并且我正在编写脚本以从 python 启动它。我尝试过不同的变subprocess.Popen
体
subprocess.Popen('module load vnc;vncserver :8080 -localhost', shell=True)
返回127
退出代码或command not found
.
subprocess.Popen('module load vnc;vncserver :8080 -localhost', shell=False)
显示
File <path>/subprocess.py line 621, in \__init__
errread, errwrite)
OSError: [Errno 2] No such file or directory.
如果我指定shell=True
,它从执行,/bin/sh
但我需要它从/bin/bash
。
指定executable='/bin/bash'
没有帮助,因为它加载了新的 bash shell,但它以字符串而不是进程开始,即我在ps
列表中看到与我想开始的完全相同的命令。
你能告诉我如何从子进程模块启动这个命令吗?是否可以从 开始shell=False
?