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 に答える