vnc サーバーを実行しようとしていますが、最初に「module load vnc」を実行する必要があります。
ロードされたbashシェルで呼び出すとwhich module
、見つからないコマンドはPATHですが、同時に使用できます。コマンドが組み込まれているようです。
つまり、一度に 2 つのコマンドを実行する必要があり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
です。
新しいbashシェルをロードするため、指定executable='/bin/bash'
しても役に立ちませんが、プロセスとしてではなく文字列として開始されます。つまり、ps
開始したいコマンドとまったく同じコマンドがリストに表示されます。
サブプロセスモジュールからこのコマンドを開始する方法を教えてください。で始めることは可能shell=False
ですか?