Я пытаюсь запустить vnc server, но для того, чтобы сделать это в первую очередь, мне нужно запустить 'module load vnc'.
Если я вызову which module
в загруженной оболочке bash, то команда в not found - это 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, но начинается как строка, а не как процесс, т.е. я вижу в ps
списке точно такую же команду, которую я хотел бы запустить.
Не могли бы вы посоветовать, как запустить эту команду из модуля подпроцесса? Возможно ли, чтобы это началось с shell=False
?