【问题标题】:Power OFF the Beaglebone Black without Button or hardware intervention无需按钮或硬件干预即可关闭 Beaglebone Black
【发布时间】:2019-02-24 13:09:27
【问题描述】:

我需要直接通过 Python 代码 关闭 Beaglebone black,而不使用任何 gpio 按钮或任何硬件干预。

有命令行 shutdown -h now 但是这个命令在 python 代码上不起作用,因为它需要一个 sudo 密码...。 知道如何与 beaglebone black 系统(没有 sudo 的 linux 命令行)交互以关闭电路板电源吗?

谢谢。

【问题讨论】:

    标签: python linux beagleboneblack power-off


    【解决方案1】:

    好吧,我尝试了这个解决方案并且它正在工作:

     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]
    

    【讨论】:

      【解决方案2】:

      很抱歉提出这个老问题,但这有点伤害我的眼睛 :-) 虽然 'sudo' 是允许以 root 用户身份执行程序而不泄露 root 密码的正确方法,但这是一种非常糟糕的做法,包括纯文本脚本中的用户密码,甚至更多的 'sudoer'。

      虽然它也有一些风险,但您可能会发现使用标志 SUID 可能是一种更安全的方法,只要脚本被保护为仅用于允许这样做的人。

      如果您不了解 SUID,可以在此处找到一些解释,尽管 Internet 上充斥着示例。

      https://www.howtoforge.com/linux_setting_suid_sgid_bits

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-04
        • 1970-01-01
        • 1970-01-01
        • 2016-04-19
        • 2011-09-02
        • 2021-08-24
        • 1970-01-01
        • 2011-03-06
        相关资源
        最近更新 更多