我定义了一个函数,可以随时切换我的代理设置, 问题是我希望它在没有人工干预的情况下在循环中运行。但是当我在sudo中执行程序时,它会在第一次运行时顺利地运行,第二次它会要求我输入sudo密码。下面是代码位:如何在使用subprocess.call时键入sudo密码?
def ProxySetting(Proxy):
print "ProxyStetting(Proxy)"
call("networksetup -setwebproxy 'Wi-Fi' %s" "on" % Proxy, shell = True)
call("networksetup -setsecurewebproxy 'Wi-Fi' %s" "on" % Proxy, shell = True)
call("networksetup -setftpproxy 'Wi-Fi' %s" "on" %Proxy , shell=True)
我可以使用线程,但我相信有这样做的一种方式,不会造成问题。我如何硬编码我的sudo密码,以便它在函数的开头运行?
这是更好地创建使用** ** systemd服务和服务配置文件上添加的权限。 – Mikael
我不知道我是否正确理解你的问题,但你可能想看看我的回答https://stackoverflow.com/a/44540122/7738328,其中讨论了在'subprocess'中使用'sudo'。但是,如上所述,如果完全避免使用'sudo'来执行命令会更好。 – JohanL
只要输入我的密码,只需将此代码运行即可。我想自动执行该脚本,意味着不必手动输入该密码。我会尝试Mikael解决方案,但不必为每个需要root命令的文件添加权限。 – TB1