我正在使用GNOME-3运行Ubuntu-Studio12.10,并尝试在/etc/ network /if-up.d中设置bash脚本,以便根据连接到的网络的SSID自动配置代理设置。我无法使用以下任何一种方法使get自动工作:
gsettings set org.gnome.system.proxy mode "manual"
sudo -u blaine gsettings set org.gnome.system.proxy mode "manual"
su blaine -c 'gsettings set org.gnome.system.proxy mode "manual"'此外,我希望脚本可以更改环境变量http_proxy、https_proxy等等,这样像Wine这样的东西就可以识别它们,而不必重新登录和登录,五天的谷歌搜索告诉我这是不可能的。
只是-我知道这是可以做到的。统一中的“应用系统范围”按钮不需要重新登录就可以完成所有这些工作。一些进一步的调查显示,这个文章显示按钮可以访问com.ubuntu.systemservice.setProxy,这可能是ubuntu系统服务包的一部分。
是否可以使用ubuntu系统服务通过bash、终端或类似的方式设置系统范围的代理?
发布于 2013-11-13 19:19:55
如果有人还在寻找解决方案,下面是我的发现。Ubuntu通过ubuntu系统服务包公开DBus服务,但我不熟悉DBus。
但是,检查源代码(不是开放源码很好吗?)时,setProxy操作做了两件事:
对于第一种情况,修改/etc/environment中的文件。第二种情况稍微复杂一些--扫描/etc/apt/apt.conf.d中的文件,以查找匹配获取:代理的行,其中的值将被替换。如果没有匹配的行,则向每个APT conf文件中添加一个代理行(如上面所示)。
相关文件位于UbuntuSystemService/backend.py (~line 209 @Version0.2.5)中。
在回答您的问题时,您可以进行与相同的更改,也可以尝试使用DBus来解决这个问题:
dbus-send --system --print-reply --dest=com.ubuntu.SystemService --type=method_call / com.ubuntu.SystemService.set_proxy string:'http' string:'127.0.0.1:8080'由于某些原因,我在这个问题上的回答一直都是错误的,但你也许能搞清楚。
发布于 2015-02-20 03:23:54
此返回为true:
sudo -发送--系统--打印--应答--dest=com.ubuntu.SystemService --type=method_call / com.ubuntu.SystemService.set_proxy string:'http‘字符串:’http://127.0.0.1:8081‘
我发现您必须在它的前缀加上code: http,来自以下代码:
https://askubuntu.com/questions/274200
复制相似问题