无法从root用户启动ONOS SDN控制器

时间:2016-05-18 14:17:27

标签: python bash sdn onos

我使用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/",然后再次尝试该命令,它会出现同样的错误。

任何人都可以帮我解决这个问题。 ?

1 个答案:

答案 0 :(得分:0)

使用sudo时,默认情况下不保留路径变量。 Sudo有自己的路径变量。这是一种安全设计。

因为onos-setup-karaf不在路径中(即你使用onos-karaf的完整路径但onos-setup-karaf可能不在你工作的目录中)你应该尝试执行sudo env "PATH=$PATH" miniedit或者你启动该程序,但你需要保留路径变量。