1

miniedit (mininet の UI) と ONOS を SDN コントローラーとして使用して SDN で POC を実行しています。トポロジーを実行するときに miniedit から ONOS を呼び出したいので、Python で次のコード行を使用しました。

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/"コマンドを再試行しましたが、同じエラーが発生します。

誰でもこの問題を解決するのを手伝ってくれませんか。?

4

1 に答える 1

0

を使用する場合sudo、デフォルトではパス変数は保持されません。Sudo独自のパス変数があります。これはセキュリティ設計です。

パスにないためonos-setup-karaf(つまり、onos-karaf のフルパスを使用しますが、onos-setup-karaf はおそらく作業ディレクトリにありません)、実行を試みるsudo env "PATH=$PATH" minieditか、そのプログラムを開始する必要がありますが、パス変数を保持する必要があります。

于 2016-09-14T19:50:07.163 に答える