[英]Not able to execute sudo command using subprocess
我正在嘗試通過使用 Python 子進程編輯 intel_backlight 文件夾中的亮度文件來更改亮度。
無法使用 sudo priv 運行腳本。
幾乎已經嘗試了所有方法,但仍然沒有運氣......你能幫我看看我哪里出錯了。
嘗試以下:
使用 xbacklight package 不工作。
隨着 xrandr 顏色變暗但不亮。
通過更改文件的值(使用 sudo 在 shell 中工作,但希望通過 python 使用 sudo 調用 python 文件)。
command2 = "echo {} | sudo -S tee /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness ".format(new_brightness_level).split()
c2 =subprocess.Popen(command2,shell=True,stdin=subprocess.PIPE,universal_newlines=True)
res = c2.communicate(sudo_pass + '\n')[1]
command2 = "echo {} | sudo -S tee /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness ".format(new_brightness_level).split() c2 =subprocess.Popen(command2,shell=True,stdin=subprocess.PIPE,universal_newlines=True) res = c2.communicate(sudo_pass + '\n')[1]
#
command = "echo " + "'" + str(new_brightness_level) + "'" + "sudo -S > /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness" cmd2 = subprocess.Popen(['sudo', '-S'] + command.split(),stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
我在這里先向您的幫助表示感謝!!!
正在嘗試不同的事情,最終找到了一個可行的解決方案:
command3 = "echo {} | tee /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness ".format(new_brightness_level)
command4 = " sudo -S bash -c '{}' ".format(command3)
c1 =subprocess.Popen(command4,shell=True,stdin=subprocess.PIPE,universal_newlines=True)
res = c1.communicate(sudo_pass + '\n')[1]
在命令 3 中創建了沒有 Sudo 的命令
在命令 4 中,首先添加帶有 -S 的 sudo(用於從通信功能獲取密碼),然后使用 bash shell 將作為 sudo 執行,因此所有命令都將使用 sudo 運行
如果有人感到非常感激,請糾正我並添加更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.