簡體   English   中英

無法使用子進程執行 sudo 命令

[英]Not able to execute sudo command using subprocess

我正在嘗試通過使用 Python 子進程編輯 intel_backlight 文件夾中的亮度文件來更改亮度。

無法使用 sudo priv 運行腳本。

幾乎已經嘗試了所有方法,但仍然沒有運氣......你能幫我看看我哪里出錯了。

嘗試以下:

  1. 使用 xbacklight package 不工作。

  2. 隨着 xrandr 顏色變暗但不亮。

  3. 通過更改文件的值(使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM