关于在 ubuntu 1604 上执行“sudo python3 程序”

关于在 ubuntu 1604 上执行“sudo python3 程序”

我有一个python程序需要从smartctl获取信息,这意味着程序按照标题执行。但是QT界面看起来像是切换到了原生界面我该如何解决这个问题?

谢谢,斯蒂芬

答案1

如果您正在使用smartctlwith ,并且除了添加该部分之外subprocess.Popen() 没有其他需要sudo权限的内容。例如,subprocess.Popen()sudo

subprocess.Popen(['sudo','smartctl','-i','/dev/sda'])

由于您在问题中提到了 Qt,您可能希望通过对话框保存用户的密码,然后通过标准输入将密码传递给子进程。 例如,

proc = subprocess.Popen(['sudo','-S','smartctl','-i','/dev/sda',stdin=subprocess.PIPE])
smartctl_output  = proc.communicate(input=user_password_variable)

根据您的目的,您可能还会考虑将您的用户名添加到disk群组这样你就不需要sudo使用smartctl

相关内容