我定義了一個函數,可以隨時切換我的代理設置, 問題是我希望它在沒有人工干預的情況下在循環中運行。但是當我在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