2

我想运行一项服务,一旦 HDMI 电缆断开,它就会自动关闭我的 RPi Zero(这通常是通过从显示器上拔下电缆来实现的)。

到目前为止,我将其作为 system.d 服务运行:

#!/bin/bash

# Start Airplay Server
tvservice -p
/home/administrator/RPiPlay/build/rpiplay -n Airplay -l -b auto -a hdmi &

#Check regularly if HDMI cable is disconnected and shut down in that case
while [ 1 ]
        do
                if ( tvservice -s | grep -c 0x9 ); then
                        echo "turning off"
                        shutdown now
                fi
                #sleep for x seconds and check again
                sleep 2
        done

但它感觉很hacky,我认为tvservice -M应该使用它。不幸的是,我没有弄清楚如何通过调用关闭 RPi 的脚本来利用 tvservice 事件。

您有什么想法或可以确认此代码是资源高效的吗?我需要尽可能多地压缩播放服务的性能,并且不想在这些后台服务上浪费太多。

4

0 回答 0