Raspberry Piを安全にオフにする方法は?


30

通常、デスクトップコンピューターでは、を実行するsudo shutdown -P nowと、コンピューターの電源が完全にオフになり、ボタンで再びオンに戻すことができます。(同様に、コンピューターがクラッシュした場合、電源ボタンを5秒ほど押し続けると強制的に再起動できます。)

Raspberry Piには電源ボタンがありません。実際、を実行するsudo shutdown -P nowと、LEDがまだ点灯しているように見えます。再度起動するには、電源を抜き、再度接続する必要があります。これは、古いバージョンのWindowsの「コンピューターの電源を切るのは安全になりました」にやや似ています。

Raspberry Piのプラグを抜くのはどの時点で安全ですか?私は何か間違っていますか?


2
赤いledは、oiに電力が供給されていることを示しています。注目したいのは、緑色のものです。点滅している場合は、oiがmicroSDカードにアクセスしていることを意味します。シャットダウンしたら、それを見てください。4〜10回点滅します。これが発生したら、プラグを抜いても安全です。
-TheXed

1
SDカードがext4(または他のジャーナリングFS)でフォーマットされている場合、piがアイドル状態になっているときはいつでも、それをオフにするのが多少安全です。少なくともWindows95コンピュータの電源を切るよりも安全です。(安全性が重要なアプリケーションにはお勧めしませんが...とにかくpiは理想的とは言えません。)
leftaroundabout

4
@leftaroundabout、基礎となるメディアが電源障害をきれいに処理できない場合、ジャーナリングはあまり機能しません。停電後、SDカードを頻繁に再フォーマットする必要があります。
マーク

@マーク:可能。複雑さを伴わずに安全に電力を供給しないことが多いパイがありますが、実際にはこのカードはブートローダーにのみカードを使用し、他のすべてをUSBハードドライブに搭載しています。
左辺約

@Markまた、データ書き込みの途中ではあまり意味がありません。データは失われます。ファイルシステムの一貫性を保証しただけです。
ボブ

回答:


18

あなたは何も悪いことをしていません。

アクティビティLEDは、電源を切る直前に3〜4回点滅します。その後、電源を切断しても安全です。

私は通常、シャットダウンし、数分間立ち去ってから、電源コードを引き抜きます。


15

Piを再起動するために電源を切る必要はありません。SDカードの近くに1組のパッドがあります(リセットというラベルが付いている可能性があります。すべてのスイッチがボードにはんだ付けされているため、Piで見ることができません)。

最近のRasbpianにはシャットダウンのための組み込みプロセスがあります(によって処理されますsystemd-logind

以下を追加します /boot/config.txt

dtoverlay=gpio-shutdown,gpio_pin=5

これにより、ピン29(GPIO 5)とピン30(Gnd)の間に接続されたスイッチが有効になり、Piの正常なシャットダウンが開始されます。

ほとんどすべてのピンを使用できます-デフォルトはピン5(GPIO 3)ですが、これはI²Cでよく使用され ,gpio_pin=21ますが、スクリプトピン40(GPIO 21)およびピン39(Gnd)で使用されるものと同じピンを使用します

sudo poweroffPiをシャットダウンすることをお勧めします。何をしていても何も問題はありませんが、poweroff安全に電源を切ることができると、緑色のLEDが1秒間隔で10回点滅します。

プッシュボタンでPiをシャットダウンするPythonスクリプトがあります。

#!/usr/bin/env python2.7
#-------------------------------------------------------------------------------
# Name:         Shutdown Daemon
#
# Purpose:      This program gets activated at the end of the boot process by
#               cron. (@ reboot sudo python /home/pi/shutdown_daemon.py)
#               It monitors a button press. If the user presses the button, we
#               Halt the Pi, by executing the poweroff command.
#
#               The power to the Pi will then be cut when the Pi has reached the
#               poweroff state (Halt).
#               To activate a gpio pin with the poweroff state, the
#               /boot/config.txt file needs to have :
#               dtoverlay=gpio-poweroff,gpiopin=27
#
# Author:      Paul Versteeg
#
# Created:     15-06-2015, revised on 18-12-2015
# Copyright:   (c) Paul 2015
# https://www.raspberrypi.org/forums/viewtopic.php?p=864409#p864409
#-------------------------------------------------------------------------------

import RPi.GPIO as GPIO
import subprocess
import time

GPIO.setmode(GPIO.BCM) # use GPIO numbering
GPIO.setwarnings(False)

# I use the following two GPIO pins because they are next to each other,
# and I can use a two pin header to connect the switch logic to the Pi.
# INT = 17    # GPIO-17 button interrupt to shutdown procedure
# KILL = 27   # GPIO-27 /KILL : this pin is programmed in /boot/config.txt and cannot be used by any other program
INT = 21    # GPIO button interrupt to shutdown procedure

# use a weak pull_up to create a high
GPIO.setup(INT, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def main():

    while True:
        # set an interrupt on a falling edge and wait for it to happen
        GPIO.wait_for_edge(INT, GPIO.FALLING)
#       print "button pressed"
        time.sleep(1)   # Wait 1 second to check for spurious input
        if( GPIO.input(INT) == 0 ) :
            subprocess.call(['poweroff'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

if __name__ == '__main__':
    main()

そのPythonコードを参照用に追加できますか?電源を与えると、自動的にパイまたは他の方法で起動しますか?
ガウラブデイブ

4

この質問に誰も答えていないようです。「Raspberry Piのプラグを抜くのはどの時点で安全ですか?」

適切にシャットダウンするには、次を実行します

sudo shutdown

これを行うと、「ACT」ライト(緑色のライト)が10回(0.5秒間隔)しっかりと点滅します。点滅が停止すると、緑色のライトが消灯します。 この時点で、電源を切るかプラグを抜いても安全です。

Piに電力が供給されている限り、赤色のライトは点灯したままになります。

シャットダウン後、電源を切ってから、再び電源を入れてPiの電源を入れる必要があります。


2

前の回答で述べたように、赤色のLEDは、緑色のLEDがアクティビティである場合にpiに電力が供給されていることを意味します(ディスクアクティビティがあると思います)

シャットダウンコマンドの後に緑色のLEDが点滅を停止したときにプラグを抜くか、ボード上の実行/リセットパッドを短絡することができます。

このウェブサイトには、いくつかのピンをはんだ付けする意思がある場合にハードリセットスイッチを追加する方法に関する優れた指示があります。

ハードリセットを使用する場合は、停止またはシステムのシャットダウン後、またはプロセッサをすぐに再起動する最後の手段としてのみ使用するようにしてください走りながら


2

これは本当にシンプルなシャットダウンpythonスクリプトです。

import RPi.GPIO as GPIO 
import os 
channel=11 
GPIO.setmode(GPIO.BOARD) 
#Pin 11 & Gnd 

GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_UP) 
GPIO.wait_for_edge(channel, GPIO.FALLING) 
os.system("sudo shutdown -h now")
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.