SSHまたはモニターなしでPiを安全にシャットダウンしますか?


25

私のPiは現在SSHに応答していません。私が持っている唯一のHDMIモニターは数メートル先の大型テレビです。プラグを抜くことについて悪いことを聞いたことがありますが、他のオプションはありますか?

現在、ヘッドレスraspbianを実行していますが、キーボードを接続してコマンドを推測できますか?


3
それは今では動作しないだろうが、あなたは将来的にそれを適切にシャットダウンするためにあなたのGPIOピンにボタンを追加することができます
Rizzleライトを

データポイントとして:数年前から、バッテリー駆動のモバイルロボットのさまざまなタスクにRPisを使用しています。これらは、警告なしで頻繁に電源が切れます。Pis / SDカードのいずれかで問題に遭遇したことはありません(SDの接続が絶え間ない振動と壁の破壊から解放される以外は)。
マイクOunsworth 16

HDMIモニターを数メートル以上一時的に移動して、完了したら元に戻すことはできませんか?
jpmc26 16

@ jpmc26それは階段を下りており、かなり大きなテレビです。
vpzomtrrfrt 16

回答:


25

ファイルシステムの破損のリスクを高めるため、最後の手段と見なすべきですが、緑色のACTライトが激しく点滅していない場合は、通常コードを抜いても大丈夫です

デフォルトでは、ACT LEDはSDカードのI / Oアクティビティを示します。オフの場合、システムはアイドル状態になっている可能性があります。これは必ずしも真実ではありませんが、CPUを集中的に使用する(I / Oではない)アクティビティでビジーなシステムを強制終了することは、本質的に問題ではありません。オペレーティングシステムはファイルシステム情報をメモリにキャッシュします。つまり、SDカードの実際のストレージと同期していない可能性がありますが、少なくとも数秒ごとに処理する必要があります(このパターンはACTから推測できる場合がありますLED)。

したがって、5〜10秒間視聴した後にアイドル状態になり、他に選択の余地がない場合は、先に進んで電源を抜いてください。繰り返しますが、これは何も保証せず、システムがロックされ、ファイルシステムの同期が適切に行われないという不幸なシナリオがありますが、ほとんどの場合は大丈夫です。

私はおそらくこの方法でpiのコードを100回以上引っ張らなければならなかった(または電源が落ちた)ので、それのために悲しみを覚えたことは思い出せません。カードを別のマシンに入れてe2fsck -fルートファイルシステムで実行することもありますが、これは価値があります。OSはブート時にファイルシステムを自動的にチェックしますが、このチェックが失敗する(または正しく実行されない)ことがあり、気付かないことがあります。


8
5〜10秒のアイドル期間は、Linuxのデフォルト設定/proc/sys/vm/dirty_writeback_centisecsが500センチ秒(5秒)であるためです。したがって、LinuxがI / Oバッファーに未書き込みのデータを保持している場合、変更しない限り、5秒後にディスクへのフラッシュを開始します。理論上、ジャーナリングFSは、書き込み中に電源を切った場合でもファイルシステム全体の破損に対して安全であるはずですが、アイドル状態になるのを待つことで、最近変更されたファイルを破損しない可能性がはるかに高くなります。(どのジャーナリングはext3 / ext4 data = journalでのみ保護しますが、これはデフォルトではありません)
ピーターコーデス

31

Magic SysRqキー

これで開始できます。

魔法のSysRqキーは、Linuxカーネルが理解するキーの組み合わせであり、システムの状態に関係なく、ユーザーがさまざまな低レベルのコマンドを実行できるようにします。多くの場合、フリーズからの回復、またはファイルシステムを破損せずにコンピューター再起動するために使用されます。その効果は、コンピューターのハードウェアリセットボタン(または電源スイッチ)に似ていますが、より多くのオプションとより多くの制御を備えています。

キーボードを接続し、ブラインドで(モニターなしで)入力することができます。

ファイルシステムの破損や追加のハードウェアは必要ありません。


GPIOボタン

Rizzle Lightが示唆したように、何らかのボタンをつかんでGPIOピンに配線し、ボタンを押すと「poweroff」コマンドが実行されるようにプログラミングの魔法をかけることができます(もちろん管理者権限で)。

このように、適応できるGPIOプログラミングチュートリアルがオンラインにたくさんあります。

Rahul R Dhobiには、Raspberry Piをシャットダウンする素晴らしい2行のPythonスクリプトがあります。

import os
os.system("shutdown now -h")

root権限でスクリプトを実行します。


3
Linuxカーネルのmagic-SysRQドキュメントは、私がこれまでに紙に印刷したドキュメントの唯一の部分です:)。(コンピューターが1台しかなかったときに戻ってきました。)
ピーターコーデス

3

推測する必要はありません。キーボードを差し込んで、これを入力してヒットしenterます:

sudo shutdown -h now

shutdownコマンドの実行にはroot権限が必要です。


4
最初にログイン(ブラインド)し、特権アカウントを使用するか、(Raspbianの強力なpiユーザーを想定して...)prependする必要がありますsudo
goldilocks

2
@goldilocks:コマンドを追加するのではなく、コマンドsudo先頭に配置することをお勧めします:-)
psmears

@goldilocks:確かに、ログインはそれほど面倒ではないようです。
モニカとの軽さレース

1
難しいレベルについてはコメントしていませんでした;)@psmears 修正しました。
goldilocks

@goldilocks:まあまあ:)
モニカとの軽さのレース

1

シリアルポートは、このような状況に適したフォールバックであり、デフォルトで有効になっています。

Puttyを使用してシリアルポートに接続してみてください。それが機能する場合は、ユーザー名を使用してログインし、「sudo poweroff」を発行して安全にシャットダウンします。

詳細については、http://elinux.org/RPi_Serial_Connectionを参照してください...


0

同じ問題に遭遇したとき、私はモニターに簡単にアクセスすることなく、家の一部でファイルサーバーをテストしていました。あなたのpiがデフォルトのGUI環境で起動していると仮定すると、以下がうまくいきました:

  1. キーボードを差し込みます(まだ行っていない場合)。
  2. Alt-F2を押して、「実行」ダイアログを開きます。
  3. 次を入力してEnterキーを押し、ターミナルウィンドウを起動します。

    lxterminal

  4. 安全になるまで数秒待ってから、次を入力します。

    sudo shutdoown now -h

  5. Enterキーを押します。

これにより、Piがシャットダウンされます。動作する場合、キーボードが点灯し、接続されているUSBデバイスがすべてシャットダウンします。そうでない場合は、コマンドの入力を間違えた場合に上記の手順を繰り返すことができます。


-1

ウィンドウボタン-9回下向きキー-2回入力...楽しむ...


1
答えてくれてありがとう-すべての入力は大歓迎です。答えを改善するために、いくつかの変更を提案するように求められました。まず、「ウィンドウボタン」とは、Windowsキーボード上のMicrosoftロゴのあるボタンを意味します。その場合は、明示的に記載する必要があります。また、回答にはキーシーケンスが含まれていますが、十分に具体的ではありません。つまり、仮定に頼るのではなく、答えを書き直して、答えが実際に何であるかを明確にするようにしてください。
シーマス

また、アスカーがヘッドレス raspbianを実行していることにも注意してください。つまり、デスクトップ環境がインストールされていないため、このキーシーケンスはおそらく役に立たないでしょう。
Hydraxan14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.