如何使用 python 代码重置 CentOS 6 中的系统代理

如何使用 python 代码重置 CentOS 6 中的系统代理

我正在使用以下 python 代码(Python 2.7)重置我的(Cent OS 6)系统的代理,但无法重置代理:

代码:

 import os 
 print "Unsetting http..." 
 os.system("unset http_proxy") 
 os.system("echo $http_proxy") 
 print "http is reset"

输出:

Unsetting http...
http://web-proxy.xxxx.xxxxxxx.net:8080
http is reset
Process finished with exit code 0

它不应该返回http://web-proxy.xxxx.xxxxxxx.net:8080在输出中。

我从终端运行相同的取消设置命令,然后我看到代理被重置:

[trex@sumlnxvm ~]$ 取消设置 $HTTP_PROXY [trex@sumlnxvm ~]$ 回显 $HTTP_PROXY

[trex@sumlnxvm ~]$ 请建议如何使用 Python 代码重置系统代理

答案1

您无法做到这一点。环境变量从您的父 shell(您从中运行程序的 shell)开始。父 shell 创建一个新进程(用于运行 Python 代码),并将环境变量复制到该进程。您的每个 shell 都会创建os.system()一个新进程,并将环境变量复制到该进程。然后,os.system()创建的进程退出,其环境消失。

子进程不能改变父进程的环境。

相关内容