3

我正在使用一个瞬时按钮使用中断方法关闭树莓派,相同的代码是:

#Import the modules to send commands to the system and access GPIO pins
from subprocess import call
import RPi.GPIO as gpio

# Define a function to keep script running
def loop():
     raw_input()

# Define a function to run when an interrupt is called
def shutdown(pin):
    call('halt', shell=False)

gpio.setmode(gpio.BOARD) # Set pin numbering to board numbering
gpio.setup(7, gpio.IN) # Set up pin 7 as an input
gpio.add_event_detect(7, gpio.RISING, callback=shutdown, bouncetime=200)
#Set up an interrupt to look for button presses

loop() # Run the loop function to keep script running

然后我通过将这一行 python /home/pi/PiSupply/softshut.py 添加到 /etc/rc.local 来将此脚本设置为在启动时自动运行。

关闭发生,但关闭时屏幕上出现此错误。

map : vt01=>fb0
oops : terminated

在进行一些搜索后发现这可能是因为 fbi。但由于它不会导致关闭时出现任何问题,我只是希望将这个垃圾重定向到日志文件而不是出现在屏幕上。

为此,我尝试了:

os.system('pkill fbi') 

os.system('pkill fbi >/dev/null 2>/dev/null')

exec 2> /tmp/rc.local.log 
exec 1>&2

但没有任何效果。任何人都可以解释发生了什么以及如何阻止垃圾出现在屏幕上或者可能一起消除错误。

4

1 回答 1

0

您可以执行以下任一方式:

  1. 在关机前关闭电视,使用 HDMI-CEC:

    echo "standby 0" | cec-client -s

  2. 在关机前将控制台终端更改为 TTY3(例如):

    chvt 3

于 2015-06-08T13:01:20.477 回答