我需要直接从Python 代码关闭Beaglebone black ,而不使用任何 gpio 按钮或任何硬件干预。
现在有命令行shutdown -h但此命令不适用于 python 代码,因为它需要 sudo 密码....知道如何与 beaglebone black 系统交互(没有 sudo 的 linux 命令行)以请把板子断电?
谢谢你 。
我需要直接从Python 代码关闭Beaglebone black ,而不使用任何 gpio 按钮或任何硬件干预。
现在有命令行shutdown -h但此命令不适用于 python 代码,因为它需要 sudo 密码....知道如何与 beaglebone black 系统交互(没有 sudo 的 linux 命令行)以请把板子断电?
谢谢你 。
好吧,我尝试了这个解决方案并且它正在工作:
from subprocess import Popen, PIPE
sudo_password = 'temppwd'
command = 'shutdown -h now'.split()
p = Popen(['sudo', '-S'] + command, stdin=PIPE, stderr=PIPE,
universal_newlines=True)
sudo_prompt = p.communicate(sudo_password + '\n')[1]
很抱歉提出这个老问题,但这有点伤害我的眼睛:-) 虽然“sudo”是允许以 root 用户身份执行程序而不泄露 root 密码的正确方法,但这是一个非常糟糕的做法,包括纯文本脚本中的用户,甚至更多的“sudoer”。
尽管它也有一些风险,但您可能会发现使用标志 SUID 可能是一种更安全的方法,只要脚本被保护为仅用于允许这样做的人。
如果您不了解 SUID,可以在此处找到一些解释,尽管 Internet 上充斥着示例。