Вимкнення Pi безпечно без SSH чи монітора?


25

Наразі My Pi не відповідає на SSH, і єдиний у мене монітор HDMI - це великий телевізор за кілька метрів. Я чув погані речі про його відключення, але чи є у мене інший варіант?

В даний час працює безголовий raspbian, можливо, я міг би підключити клавіатуру і здогадатися про команди?


3
Наразі це не працюватиме, але ви можете додати кнопку до своїх штифтів GPIO, щоб в майбутньому правильно її вимкнути
Rizzle Light

Як точка даних: кілька років я використовував RPis для виконання різних завдань на мобільних роботах, що працюють на батареях. Вони вимикають живлення часто і без попередження. Я ще не стикався з проблемою будь-якої з карт Pis / SD (ну, крім того, що з'єднання SD втрачається від постійних вібрацій і розбиття стіни).
Майк Оунсворт

Ви не можете тимчасово перемістити монітор HDMI на кілька метрів, а потім поставити його назад, коли закінчите?
jpmc26

@ jpmc26 це вниз по сходах, і це досить великий телевізор.
vpzomtrrfrt

Відповіді:


25

Хоча це слід вважати крайнім засобом, оскільки це підвищує ризик пошкодження файлової системи, відключення шнура зазвичай нормально, якщо зелений індикатор ACT не блимає інтенсивно .

За замовчуванням лідер ACT показує активність вводу / виводу на SD-карті. Якщо він вимкнений, швидше за все, система працює в режимі очікування. Це не обов'язково правда, але вбивство системи, яка зайнята інтенсивним процесором (а не введенням-виведенням), все одно не є проблемою. Операційна система займає кешування інформації файлової системи в пам'яті, тобто вона може не синхронізуватися з фактичним сховищем на SD-картці, але це має вирішуватися щонайменше кожні кілька секунд (іноді, можливо, ви зможете зробити цей шаблон із ACT світлодіодний).

Тож якщо після перегляду його протягом 5-10 секунд він не працює, і у вас немає іншого вибору, продовжуйте роботу та вимкніть живлення. Знову ж таки, це нічого не гарантує, і існують невдалі сценарії, коли система може заблокуватися, а синхронізація файлової системи не відбувається належним чином, але в більшості випадків у вас повинно бути все в порядку.

Мені, мабуть, довелося протягнути шнур на пі (або відключилося електроживлення) понад сто разів таким чином, і я не можу пригадати, щоб у мене колись було горе. Іноді я поставлю карту в іншу машину і запускаю e2fsck -fна кореневу файлову систему, що варто. ОС перевіряє файлову систему автоматично під час завантаження, але можливо, ця перевірка завершиться (або не буде виконана правильно) і залишиться непоміченою.


8
Період простою від 5 до 10 секунд пояснюється тим, що налаштування Linux за замовчуванням /proc/sys/vm/dirty_writeback_centisecsстановить 500 сантисекунд (5 секунд). Тож якщо у Linux є неписані дані, що сидять у буферах вводу / виводу, він почне передавати їх на диск через 5 секунд, якщо ви не змінили їх. Теоретично FS-журнал повинен бути захищеним від пошкодження всієї файлової системи, навіть якщо ви підключаєтесь до роботи під час запису, але очікування, що вона не працює, дає вам набагато більше шансів також не пошкодити жодних нещодавно змінених файлів. (Який журнал захищає лише за допомогою даних ext3 / ext4 = журнал, що не є типовим)
Пітер Кордес

31

Чарівний ключ SysRq

Це має розпочати роботу.

Чарівний ключ SysRq - це комбінація клавіш, зрозуміла ядром Linux, яка дозволяє користувачеві виконувати різні команди низького рівня незалежно від стану системи. Його часто використовують для відновлення після заморожування або для перезавантаження комп'ютера без пошкодження файлової системи . Його ефект схожий на апаратну кнопку скидання обладнання (або вимикач живлення), але з набагато більшою кількістю можливостей та набагато більшим контролем.

Ви можете підключити клавіатуру і ввести цей матеріал у сліпі (без монітора.)

Не пошкоджена файлова система, не потрібне додаткове обладнання.


Кнопка GPIO

Як запропонував Rizzle Light, ви можете захопити якусь кнопку і підключити її до штифтів GPIO, і зробити невелику магію програмування, щоб змусити натискання кнопки виконувати команду "poweroff" (з правами адміністратора, звичайно.)

В Інтернеті є багато навчальних посібників з програмування GPIO, які ви можете адаптувати, як цей .

Rahul R Dhobi має приємний сценарій пітона для дворівневого зв’язку, який закриє Raspberry Pi:

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

виконати свій сценарій з привілеями root.


3
Чарівна документація-ядро SysRQ ядра Linux - це єдиний фрагмент документації, яку я коли-небудь роздрукував на папері :). (І це було назад, коли у мене був лише один комп’ютер.)
Пітер Кордес

3

Не потрібно здогадуватися; просто підключіть клавіатуру та введіть це та натисніть enter:

sudo shutdown -h now

shutdownКоманда потребує кореневої привілеї для виконання.


4
Вам слід спочатку увійти (сліпо) та використовувати привілейований обліковий запис, або (презумпція суперпотужного piкористувача Raspbian ...) sudo.
золотинки

2
@goldilocks: Ви, мабуть, хочете поставити sudoкоманду на початку , а не додавати її :-)
psmears

@goldilocks: Але все-таки вхід у систему не здається великою справою.
Гонки легкості з Монікою

1
Я не коментував рівень складності;) @psmears Ну, залишилось! Виправлено.
золотинки

@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.

Це повинно закрити Пі. Якщо вона працює, індикатори клавіатури та будь-які приєднані USB-пристрої відключаються. Якщо ні, ви можете повторити описані вище дії, якщо ви помилилися, набравши команди.


-1

Кнопка вікна - дев'ять разів клавіша вниз - 2 рази введіть ... Насолоджуйтесь ...


1
Дякуємо за відповідь - всі матеріали вдячні. Мене попросили запропонувати деякі зміни, які допоможуть вам покращити свою відповідь: По-перше, я вважаю, що під «кнопкою Вікно» ви маєте на увазі кнопку з логотипом Microsoft на клавіатурах Windows. Якщо це так, ви повинні це чітко зазначити. Також у вашій відповіді мається на увазі ключова послідовність, але недостатньо конкретна. Коротше кажучи, будь ласка, перепишіть свою відповідь, щоб однозначно зрозуміти, що насправді відповідає, а не спиратися на припущення.
Сеамус

Також зауважте, що аскер працює без головної матки. Це означає, що середовище робочого столу не встановлено, тому ця послідовність клавіш, ймовірно, не допоможе.
Hydraxan14
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.