2016-05-18 17 views
1

miniedit(UIのmininet)とONOSをSDNコントローラとして使用してSDN上でPOCを実行しています。トポロジを実行するときにminieditからONOSを呼び出すようにしました。 Pythonでのコードの行ルートユーザからONOS SDNコントローラを起動できません

os.system("gnome-terminal -e 'bash -c \"/home/paxterra/onos/tools/dev/bin/onos-karaf; exec bash\"' &") 

は、これは私が通常のユーザーとして、それを実行した場合ONOSを呼び出しますが、miniedit.pyで、このコードに存在するので、エラーをスローし、私はスーパーユーザとしてminiedit.pyを実行していますよ。

Error : /home/paxterra/onos/tools/dev/bin/onos-karaf: line 7: onos-setup-karaf: command not found 

が、私は環境変数PATH="/home/paxterra/onos/tools/dev/bin/"を設定しようとしましたし、再度コマンドを試してみました、それは同じエラーを与えます。

誰でもこの問題を解決するのに手伝ってください。 ?

+0

まだサブプロセスモジュールでコマンドを実行しようとしましたか? (サブプロセスコール)? – telina

+0

はい、私もsubprocess.call()とsubprocess.Popen()を試してみましたが、うまくいきませんでした。 – Nisha

答えて

0

sudoを使用すると、path変数はデフォルトでは保存されません。 Sudoには独自のパス変数があります。これはセキュリティ設計です。 onos-setup-karaf以来

あなたはsudo env "PATH=$PATH" minieditを実行しようとする必要がありますかしかし、あなたはそのプログラムを起動していますが必要です(つまり、あなたはonos-karafが、onosセットアップ-karafのための完全なパスを使用するには、あなたの作業ディレクトリにはおそらくない)のパスにありませんパス変数を保持します。

関連する問題