Jak wyłączyć Raspberry Pi?


247

Czy powinienem po prostu wyciągnąć wtyczkę? A może najlepiej, jeśli najpierw zamknę LXDE i inne uruchomione procesy?


45
Oczywiście za każdym razem prawidłowo wyłączam swoje ... kaszel
berry120

11
sudo halt -pzrobię to.
Thorbjørn Ravn Andersen

12
Chciałbym zobaczyć „instrukcje” dotyczące twardego przycisku podłączonego do GPIO, aby poinformować system operacyjny o zamknięciu.

20
Ludzie, którzy po prostu wyciągają moc spod swoich Pi, powinni naprawdę przestać to robić. Miałem dwie pełne instalacje Rasbian, które zaczynają panikować jądro z powodu uszkodzonych systemów plików spowodowanych niewłaściwym zamknięciem (np. Wyłączenie zasilania). W obu przypadkach musiałem ponownie zobrazować kartę i wykonać całą pracę włożoną w jej konfigurację.
tavis

3
@tavis - Gdy uzyskasz dobrą konfigurację, z której jesteś zadowolony, naprawdę powinieneś wykonać kopię zapasową za pomocą Win23 Disk Imager. Lekki, bezpłatny itp. Zachowa dokładną kopię całego systemu operacyjnego Raspberry Pi, więc zawsze jesteś w krótkiej podróży do Best Buy z dala od w pełni przywróconego Pi - zakładając, że problemem jest awaria dysku lub błędna konfiguracja: -).
GojiraDeMonstah

Odpowiedzi:


251

Na pewno nie chcesz po prostu wyciągnąć wtyczki. Może to powodować problemy z kartą SD i systemem plików.

Z linii poleceń

Korzystając z wiersza polecenia lub okna terminala, możesz wprowadzić następujące dane, aby wykonać czyste zamknięcie:

sudo shutdown -h now

Z GUI LXDE

  1. Kliknij przycisk zamykania (czerwony przycisk zasilania) na pasku menu w prawym dolnym rogu ekranu.
  2. Kliknij zamknij (lub „wyloguj się”, jak pokazano w nowszych wersjach, a następnie wydaj polecenie zamknięcia wymienione powyżej).

Gdy pojawi się komunikat System został zatrzymany , w razie potrzeby można odłączyć przewód zasilający.


2
Odnośnie części GUI LXDE: czy to wciąż jest aktualne? Próbowałem z Raspbian odpowiadający NOOBS 1.4 Wydany 2015-03, przedstawiając wersję systemu Linux: Debian 7 (wheezy) - Nie jestem pewien dokładnej wersji, ale jest Raspbian ultimo 2014 / primo 2015 (poprawka dla Shellshock bug jest w zestawie) . Naciśnięcie przycisku zasilania w prawym dolnym rogu oferuje tylko wylogowanie (i anulowanie). Jednak na pulpicie znajduje się ikona o nazwie „Shutdown”. Nie wiem, czy NOOBS dostosowuje / konfiguruje Raspbian.
Peter Mortensen

@PeterMortensen wydaje się, że nowsza wersja Raspbian usunęła go z opcji, więc dokonałem edycji powyżej, aby rozwiązać ten problem - dzięki.
Steve Robillard

57

Najlepiej jest zawsze poprawnie wyłączyć system, jeśli możesz.

Ciągłe odłączanie urządzenia bez wyłączania z wdziękiem może mieć niepożądany wpływ na kartę SD (już przedmiot temperamentalny).

W celu zamknięcia z terminala możesz użyć:

sudo shutdown -h now

lub

sudo halt

Te polecenia wysyłają SIGTERMdo wszystkich uruchomionych procesów, powiadamiając je o zapisaniu danych i wyjściu. Następnie wysyła SIGKILLdo wszystkich pozostałych procesów, aby zatrzymać system, a następnie ostatecznie odmontowuje wszystkie systemy plików. Wyświetlony zostanie ekran System Haltedi możesz wyciągnąć wtyczkę.


6
sudo poweroffdziała również dobrze.
Nilpo

3
Z zainteresowaniem, co jest różnica między halt, shutdowni poweroff?
ACarter

2
@ACarter Nie ma różnicy, wszyscy przełączają system na poziom 6.
Jivings

3
Nie jest dokładnie takie samo: aplawrence.com/Linux/halt_shutdown_reboot.html
Anake

1
@Jivings Oni nie dokładnie tak samo na każdym systemie / dystrybucji , na przykład, niektóre warianty BSD będzie po prostu zatrzymać CPU nawet bez zabijania żadnych procesów podczas wywoływania halt. Co więcej, możesz określić, haltaby po prostu zatrzymać jądro / procesor od razu, bez wyłączania jakichkolwiek procesów; z tego powodu trzymałbym się, shutdownchyba że masz konkretny powód, aby tego nie robić.
Przełom

29

Użyłem również tego rozwiązania shutdown.py .

Nadal musisz znaleźć fizyczny przełącznik i przylutować go do styków 6 i 8 nagłówka 5 . Wziąłem mój ze starej, zepsutej płyty Arduino. Wywierciłem również mały otwór w obudowie, aby upewnić się, że mogę nacisnąć przycisk małą drewnianą szpilką, gdy obudowa jest zamknięta.

Tak to wygląda:

Zrzut ekranu rozmieszczenia przełączników


Jako nowicjusz w Raspberry Pi, dlaczego trzeba znaleźć fizyczny przełącznik i przylutować go do tych pinów? Czy potrzebujesz sprzętu, aby go poprawnie wyłączyć, lub co się stanie, jeśli po prostu go wyłączysz za pomocą oprogramowania (tj. Z powłoki lub z GUI)?
HelloGoodbye

Chodziło o to, aby zrobić to lokalnie, bez dostępu zdalnego. Nie ma przycisku, który z wdziękiem wyłączyłby system operacyjny, więc po prostu „wyciągnięcie wtyczki”, jak sugeruje OP, nie jest dobrą opcją.
Oleg Gryb

Nie jestem pewien, czy idę za tobą. Dlaczego fizyczny przełącznik jest przylutowany do Pi, a nawet lepszy niż wyciągnięcie wtyczki?
HelloGoodbye

Nie, zdecydowanie nie jesteś. Nie mówię, że „jest to konieczne”, mówię, że możesz użyć rozwiązania, aby bezpiecznie zamknąć urządzenie bez zdalnego dostępu.
Oleg Gryb

Ach, rozumiem, więc jest to konieczne tylko wtedy, gdy używasz rozwiązania shotdown.py. Wygląda jednak na to, że plik został przeniesiony lub usunięty; twój link już na to nie wskazuje.
HelloGoodbye

14

Postępowałem zgodnie z projektem opisanym w Raspberry Pi Shutdown Switch - Bezpieczne wyłączanie Pi , ale ustawiłem pin 17, aby został wewnętrznie wyciągnięty. Następnie podłącz przewody jak w powyższym projekcie, ale pomiń rezystory i dodaj następujący skrypt w języku Python /etc/rc.local:

python shutdown_button.py

Plik shutdown_button.py

import RPi.GPIO as GPIO
import time
import os
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down = GPIO.PUD_UP)
while True:
    print GPIO.input(17)
    if (GPIO.input(17) == False):
        os.system("sudo shutdown -h now")
        break
    time.sleep(1)

1
Dziwne z powyższego byłoby to, że ponieważ sprawdza stan raz na sekundę, czasami będzie wymagać przytrzymania przycisku przez pełną sekundę, a innym razem będzie wydawało się, że natychmiast się wyłącza. To w porządku, oczywiście, tylko dziwactwo.
Brian

8
Użyj GPIO.wait_for_edge(17, GPIO.FALLING)zamiast pętli while, jest bardziej responsywny.
Mauro De Lucca,

13

Pomijając inne kwestie, zasilanie i inne złącza zostaną zaprojektowane dla ograniczonej liczby cykli wkładania / odłączania. Często jest to zaskakująco niska liczba.

Statystycznie złącza są bardzo prawdopodobnym źródłem awarii sprzętu.

Biorąc pod uwagę ogólną długość życia twojego Pi, możesz chcieć zminimalizować liczbę podłączeń / rozłączeń złącza, których doświadcza. Jednym ze sposobów pomocy w tym celu byłoby użycie włącznika / wyłącznika gniazda zasilania.


Jaka jest więc sugestia? Wyłączyć Raspberry Pi, odłączając zasilacz od sieci (zmniejszając w ten sposób liczbę cykli wkładania / wyjmowania do złącza w urządzeniu)? Uważam twoją odpowiedź dotyczącą prawdopodobieństwa uszkodzenia złącza za bardzo interesującą. Czy możesz to zrobić, podając linki do jakichkolwiek dowodów? Dzięki.
Andrew Fogg,

3
@AndrewFogg To dobrze znany czynnik w projektowaniu urządzeń w elektrotechnice. W ogólnym przypadku komponenty elektroniczne nie mają takiego samego poziomu sił mechanicznych jak złącza. Okresy krycia producentów, jak można się spodziewać, dla złącza są uzyskiwane w sprzyjających warunkach, więc często są optymistyczne i nie uwzględniają rzeczywistego użytkowania przez ludzi. Sprawdź arkusze danych, złącza Edge - 50-100 wstawek, RJ45 500-1000 wstawek, Micro- USB 5000-10000. Tak, masz rację, wyłączenie przy gniazdku ściennym jest najlepszym wyborem.
image_doctor

Dodaj sugestię do swojej odpowiedzi. Ty i ja doszliśmy do wniosku, ale inni mogą nie widzieć konsekwencji.
Bengt

A co z przełącznikami? Czy są przeznaczone do większej liczby kręgów? Czy dobrym pomysłem byłoby umieszczenie przełącznika po stronie prądu zmiennego zasilacza?
Bengt

2
Jeśli jest osiągalny (i nie wchodzi w jeszcze droższy sprzęt, taki jak komputer stacjonarny / laptop), często uważam, że lepiej jest podłączyć wtyczkę kabla USB typu „A”. Kable są tanie w wymianie, a koniec „A” zazwyczaj łatwiej się podłącza i odłącza, bez konieczności mocnego chwytania deski palcami.
Chris Stratton,

6

Zdalnie loguję się do mojego Raspberry Pi, a oto jak go wyłączyć:

  1. Wykonaj polecenie:
    sudo shutdown -h now
  2. Poczekaj, aż diody LED przestaną migać na Raspberry Pi.
  3. Poczekaj dodatkowe pięć sekund na dobry pomiar (opcjonalnie).
  4. Wyłącz pasek zasilania, do którego podłączony jest zasilacz Raspberry Pi.

Ponieważ używam zdalnego wyświetlacza, niekoniecznie widzę końcowe wyjście Raspberry Pi w oknie poleceń, dlatego używam lampek aktywności. Nie mrugający stan diod LED nie jest absolutnym wskaźnikiem całkowitego pomyślnego wyłączenia, ale działał dla mnie wystarczająco dobrze.


3

Aby uniknąć problemów z uszkodzeniem karty SD, należy zawsze prawidłowo zamykać system operacyjny. Możesz to zautomatyzować za pomocą rozwiązania sprzętowego kontrolera mocy i skryptu uruchamianego przez sygnał portu GPIO, na przykład (oprócz wspomnianego powyżej zasilania Pi):

Płyta RemotePi w ostatnim linku ma dodatkową funkcję używania pilotów IR do włączania / wyłączania Raspberry Pi.


2

Jeśli Twój Raspberry Pi jest zamrożony, nie możesz wejść do ssh lub konsoli, to pomaga. Złamałem kilka kart SD, zanim wiedziałem o tym:

Przytrzymaj oba klawisze Alt + PrintScreen i przytrzymując te klawisze, naciskaj kolejno następujące klawisze, jeden po drugim, z kilkuminutową przerwą między nimi.

Alt+ PrintScreen+R E I S U O

lub

Alt+ PrintScreen+ R E I S U B(restart)

Przydatnym mnemonikiem do zapamiętania jest ponowne uruchomienie, nawet jeśli system jest całkowicie zepsuty.

Zamiast „B” wpisz „O”, aby zamknąć system zamiast restartu (O = wyłączony, B = rozruch).

Źródło: https://www.raspberrypi.org/forums/viewtopic.php?t=176612#p1126262


1
główne źródło: en.wikipedia.org/wiki/Magic_SysRq_key (pamiętaj o układzie klawiatury)
Fabian

1

To nie jest bardzo trudne. Przejdź do wiersza polecenia i wpisz sudo halt. W razie potrzeby wprowadź hasło. Gdy na ekranie nie będzie już nic, wyciągnij wtyczkę.

Informacje ze strony internetowej Raspberry Pi.


Dodałbym tylko, że gdy ekran zgaśnie, dwukrotnie sprawdzam, aby upewnić się, że zgasło zielone światło.
SDsolar

1

Istnieje również płyta GPIO o nazwie Pi Supply, która ma włącznik, zarządzanie energią i twardy wyłącznik do blokowania. Jest to również przydatne, jeśli wtyczka znajduje się za telewizorem i trudno się do niej dostać. Nadal musisz normalnie wyłączyć, ale następnie wyłącza Raspberry Pi.

Jeśli martwisz się zużyciem portu micro USB zasilania podczas normalnego użytkowania, możesz uzyskać adapter USB męski na żeński i podłączyć do niego zasilacz.


1

Istnieje wiele sposobów na wyłączenie pi! Samo wyciągnięcie wtyczki bez odpowiedniego wyłączenia może uszkodzić kartę SD!

Aby zamknąć, użyj sudo shutdown -nowlub sudo shutdown -timepowiedz zamknięcie w ciągu kilku minut.

Aby zrestartować, użyj, sudo rebootaby zrestartować i ponownie włączyć sudo reboot -time in minuteszasilanie i lub użyj tylko, sudo rebootaby ponownie uruchomić teraz sudo shutdownbez -timedomyślnej wartości jednej minuty, aby anulować zamknięciesudo shutdown -c

Uwaga: Możesz także nacisnąć przycisk malinowy pi, a następnie kliknąć moc. Następnie zamknięcie lub ponowne uruchomienie, a także wyłączenie i ponowne uruchomienie są natychmiastowe!


Aktualizacja:

Jak opisano w niektórych innych odpowiedziach w tym poście:

sudo halt

Działa również: gdy na ekranie nie będzie już nic, wystarczy wyciągnąć wtyczkę!


„nie ma możliwości włączenia bez wyciągnięcia wtyczki i włożenia jej z powrotem” -> Niepoprawnie. Nagłówek RUN może być użyty do twardego resetu SoC, powodując jego uruchomienie (bez względu na to, czy system operacyjny został zamknięty ...): raspberrypi.stackexchange.com/q/29339/5538 W niektórych modelach są one oznaczone P6, nie RUN.
złotowłosa

@goldilocks Dziękuję Nie wiedziałem, że usunąłem go z mojego postu
User98764431,

0

Tak naprawdę nie potrzebujesz wyłącznika zasilania dla swojego Raspberry Pi. Używam koncentratora USB do zasilania z włącznikami / wyłącznikami. Tak więc, ilekroć chcę wyłączyć Raspberry Pi, po prostu wyłączam przełącznik USB.


20
Nie jest dobrym pomysłem, aby po prostu korzystać z mocy Pi - TY możesz ryzykować utratę lub uszkodzenie danych w przypadku nagłego zaniku zasilania. Lepiej zawsze zamykać zgodnie z przeznaczeniem. na przykład - FreeNAS (oparty na FreeBSD) jest bezpieczny, ponieważ root jest tylko do odczytu; Ale ponieważ jest to NAS! dane mogą zostać utracone podczas zapisywania na dyskach twardych ... Więc koniec dnia. Zawsze używaj zaimplementowanych metod zamykania!
Piotr Kula,

0

Wtyczkę należy wyciągać tylko wtedy, gdy zielona dioda LED jest wyłączona. Zielona dioda miga, jeśli urządzenie zapisuje na karcie SD.


0

Normalne polecenia unixowe działają z Linuksem, tak jak:

init 0 wyłączy go, więc można bezpiecznie wyciągnąć wtyczkę.

init 6 uruchomi się ponownie.

W przeciwieństwie do unixa, nie ma potrzeby synchronizacji; synchronizacja; przed zamknięciem. Ale samo wyciągnięcie wtyczki może powodować błędy, dlatego przed odłączeniem zasilania należy użyć wyłączania lub init 0. Jeśli zdarzy Ci się nieoczekiwanie przerwać zasilanie, użyj fsck, aby sprawdzić i / lub naprawić ewentualne problemy.

Może zajść potrzeba wykonania pełnej synchronizacji; synchronizacja; synchronizacja; spać 30; zatrzymać, jeśli masz zewnętrzny system plików, który nie odmontowuje się czysto. Będziesz wiedział, czy jest to problem, uruchamiając fsck na zewnętrznych systemach plików zaraz po uruchomieniu. Jeśli pojawiają się problemy, możesz zrobić to wszystko. Ale nigdy nie widziałem, żeby tak się działo z moim Rpi3.


0

Zawsze używaj polecenia, aby wyłączyć i wyłączyć Raspberry Pi. Używam sudo halt jak wielu innych użytkowników. Zalecam utworzenie kopii zapasowej karty SD. Przypadkowo odłączyłem kopalnię i jakoś uszkodziłem obraz. Łatwiej jest zamknąć niż nagrać nowy obraz i zacząć od nowa

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.