我正在使用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/",然后再次尝试该命令,它给出了相同的错误。
有人能帮我解决这个问题吗??
发布于 2016-09-15 03:50:07
使用sudo时,默认情况下不保留path变量。Sudo有自己的path变量。这是一个安全设计。
由于onos-setup-karaf不在path中(即您对onos-karaf使用完整路径,但onos-setup-karaf可能不在您工作目录中),您应该尝试执行sudo env "PATH=$PATH" miniedit,或者无论您启动程序的方式是什么,但是您需要保留path变量。
https://stackoverflow.com/questions/37302333
复制相似问题