Como desligo o meu Raspberry Pi?


246

Devo apenas puxar o plugue? Ou é melhor se eu sair do LXDE e de outros processos em execução primeiro?


45
É claro que eu desligar o meu Pi adequadamente cada vez ... tosse
berry120

11
sudo halt -pvai fazer isso.
Thorbjørn Ravn Andersen

12
eu adoraria ver um "how-to" para um botão conectado ao GPIO para dizer ao sistema operacional para desligar.

20
As pessoas que estão apenas retirando energia de seus Pi devem realmente parar de fazer isso. Eu tive duas instalações Rasbian completas que começaram a entrar em pânico no kernel por causa de sistemas de arquivos corrompidos devido a desligamentos inadequados (por exemplo, puxando a energia). Eu tive que recriar novamente a placa nos dois casos e refazer todo o trabalho que fiz para configurá-la.
Tavis

3
@tavis - Quando você obtém uma boa configuração, está realmente satisfeito com algo como o Win23 Disk Imager. Leve, gratuito, etc., manterá uma cópia exata de todo o sistema operacional do Raspberry Pi, para que você seja apenas uma rápida viagem à Best Buy, longe de ter um Pi totalmente restaurado - supondo que o problema seja falha no disco ou configuração incorreta: -)
GojiraDeMonstah 7/14

Respostas:


250

Você definitivamente não quer apenas puxar o plugue. Isso pode causar problemas com o cartão SD e o sistema de arquivos.

Na linha de comando

Ao usar a linha de comando ou uma janela do terminal, você pode inserir o seguinte para fazer um desligamento limpo:

sudo shutdown -h now

Na GUI do LXDE

  1. Clique no botão desligar (botão liga / desliga vermelho) na barra de menus no canto inferior direito da tela.
  2. Clique em shutdown (ou "logout", como mostrado nas versões mais recentes, em seguida, emita o comando shutdown listado acima).

Depois que o sistema parar , você poderá remover o cabo de alimentação, se necessário.


2
Em relação à parte da GUI do LXDE: Isso ainda está atual? Tentei com o Raspbian correspondente ao NOOBS 1.4 lançado em 2015-03, versão subjacente do Linux: Debian 7 (Wheezy) - Não tenho certeza da versão exata, mas é o Raspbian ultimo 2014 / primo 2015 (a correção do bug do Shellshock está incluída) . Pressionar o botão liga / desliga no canto inferior direito oferece apenas logout (e cancelamento). No entanto, há um ícone na área de trabalho chamado "Desligar". Não sei se o NOOBS personaliza / configura o Raspbian.
Peter Mortensen

@PeterMortensen parece que a versão mais recente do Raspbian o removeu das opções, então eu fiz uma edição acima para resolvê-lo - obrigado.
Steve Robillard

57

É melhor sempre desligar corretamente, se puder.

Desconectar constantemente o dispositivo sem desligar normalmente pode ter efeitos indesejáveis ​​no cartão SD (um objeto temperamental já).

Para referência, para desligar do terminal, você pode usar:

sudo shutdown -h now

ou

sudo halt

Estes comandos enviar SIGTERMa todos os processos em execução, notificando-os para salvar seus dados e saída. Em seguida, ele envia SIGKILLa todos os processos restantes para interromper o sistema, seguido por finalmente desmontar todos os sistemas de arquivos. A tela será exibida System Haltede você poderá puxar o plugue.


6
sudo powerofftambém funciona muito bem.
Nilpo

3
Fora de interesse, o que é a diferença entre halt, shutdowne poweroff?
precisa saber é o seguinte

2
@ACarter Não há nenhuma diferença, todos eles mudar o sistema para o nível de execução 6.
Jivings

3
A sua não é exatamente o mesmo: aplawrence.com/Linux/halt_shutdown_reboot.html
Anake

1
@Jivings Eles não são exatamente os mesmos em todos os sistemas / distros , por exemplo, algumas variantes do BSD apenas interrompem a CPU sem sequer matar nenhum processo ao chamar halt. Além disso, você pode especificar haltapenas interromper o kernel / CPU imediatamente sem interromper nenhum processo; por esse motivo, eu continuaria usando, a shutdownmenos que você tenha um motivo específico para não fazer isso.
Breakout

29

Também usei essa solução shutdown.py .

Você ainda precisará encontrar um comutador físico e soldá-lo nos pinos 6 e 8 do cabeçalho 5 . Peguei o meu de um velho painel quebrado do Arduino. Também fiz um pequeno furo no estojo para garantir que eu possa pressionar o botão com um pequeno alfinete de madeira quando o estojo estiver fechado.

É assim que parece:

Captura de tela da organização do switch


Como um iniciante no Raspberry Pi, por que é necessário encontrar um comutador físico e soldá-lo a esses pinos? Você precisa de hardware para desligá-lo corretamente, ou o que acontece se você simplesmente desligá-lo usando o software (ou seja, a partir do shell ou de uma GUI)?
HelloGoodbye

O objetivo era fazê-lo localmente sem acesso remoto. Não existe um botão que desligue normalmente o sistema operacional; portanto, "puxar o plugue", como sugerido pela OP, não é uma boa opção.
Oleg Gryb

Não tenho certeza se te sigo. Por que é necessário um interruptor físico soldado ao Pi, ou até melhor do que puxar o plugue?
HelloGoodbye 30/06

Não, você definitivamente não é. Não estou dizendo que "é necessário", estou dizendo que você pode usar a solução para desligar o dispositivo normalmente sem acesso remoto.
Oleg Gryb 30/06

Ah, entendi, então só é necessário se você usar a solução shotdown.py. O arquivo parece ter sido movido ou removido; seu link não aponta mais para ele.
HelloGoodbye

14

Segui o projeto descrito no Raspberry Pi Shutdown Switch - Desligando o Pi com segurança , mas coloque o pino 17 para ser puxado internamente. Em seguida, conecte os fios como no projeto acima, mas deixe de fora os resistores e adicione o seguinte script Python em /etc/rc.local:

python shutdown_button.py

Arquivo 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
Uma peculiaridade do exposto acima é que, como verifica o estado uma vez por segundo, às vezes é necessário manter o botão pressionado por um segundo inteiro e, outras vezes, parece que ele começa a se desligar instantaneamente. Tudo bem, é claro, apenas uma peculiaridade.
Brian

8
Use em GPIO.wait_for_edge(17, GPIO.FALLING)vez do loop while, é mais responsivo.
Mauro De Lucca

13

Outras considerações à parte, os conectores de energia e outros serão projetados para um número limitado de ciclos de inserção / desconexão. Muitas vezes, esse é um número surpreendentemente baixo.

Os conectores estatísticos são uma fonte muito provável de falha do equipamento.

Tendo em vista a longevidade geral do seu Pi, convém moderar o número de inserções / desconexões de conectores que ele experimenta. Uma maneira de ajudar a fazer isso seria usar o interruptor liga / desliga da tomada.


Então, qual é a sugestão? Desligue o Raspberry Pi desconectando a fonte de alimentação (reduzindo assim o número de ciclos de inserção / remoção no conector do dispositivo)? Acho sua resposta sobre a probabilidade de falha do conector muito interessante. Você pode fazer o backup com links para qualquer evidência? Obrigado.
Andrew Fogg

3
@AndrewFogg É um fator bem conhecido no design de equipamentos em Engenharia Elétrica. No caso geral, os componentes eletrônicos não apresentam o mesmo grau de força mecânica que os conectores. Os fabricantes que acasalam a vida útil do conector, como você poderia esperar, são obtidos em condições favoráveis, portanto são otimistas e não levam em consideração o uso humano na vida real. USB 5000-10000. Então, sim, você está certo, desligar a tomada é a melhor opção.
Image_doctor 21/06

Por favor, adicione a sugestão à sua resposta. Você e eu chegamos à conclusão, mas outros podem não ver as implicações.
Bengt

E quanto aos switches? Eles são projetados para mais / fora de círculos? Seria uma boa idéia colocar um interruptor no lado CA da fonte de alimentação?
Bengt

2
Se for acessível (e não for para um equipamento ainda mais caro, como um desktop / laptop), acho preferível conectar a extremidade USB "A" do cabo. Os cabos são baratos para substituir, e a extremidade "A" geralmente conecta e desconecta mais facilmente sem exigir que você segure firmemente a placa com os dedos.
Chris Stratton

6

Eu entro no meu Raspberry Pi remotamente e aqui está como eu o encerro:

  1. Execute o comando:
    sudo shutdown -h now
  2. Aguarde até que os LEDs parem de piscar no Raspberry Pi.
  3. Aguarde mais cinco segundos por uma boa medida (opcional).
  4. Desligue a bateria que a fonte de alimentação Raspberry Pi está conectada.

Como uso um monitor remoto, não vejo necessariamente a saída final do Raspberry Pi na janela de comando, e é por isso que uso as luzes de atividade. O estado de não piscar dos LEDs não é uma indicação absoluta de um desligamento completo com êxito, mas funcionou bem o suficiente para mim.


3

Para evitar problemas de corrupção do cartão SD, você sempre deve desligar o sistema operacional corretamente. Você pode automatizar isso usando uma solução de hardware do controlador de energia e um script que é acionado por um sinal de porta GPIO, por exemplo (além do suprimento Pi mencionado acima):

A placa RemotePi no último link possui a funcionalidade adicional de usar controles remotos por infravermelho para ligar / desligar o Raspberry Pi.


2

Se o seu Raspberry Pi estiver congelado, não será possível entrar no ssh ou no console, isso ajuda. Eu estava sem dinheiro nos meus poucos cartões SD antes de saber isso:

Mantenha pressionadas as teclas Alt + PrintScreen e, enquanto pressiona essas teclas, pressione as seguintes teclas em sequência, uma de cada vez, com alguns segundos de pausa entre elas.

Alt+ PrintScreen+R E I S U O

ou

Alt+ PrintScreen+ R E I S U B(reinicialização)

Um mnemônico útil para lembrar que é, reinicie mesmo que o sistema esteja totalmente quebrado.

Substitua "O" por "B" para desligar o sistema em vez de reiniciar (O = desativado, B = inicialização).

Fonte: https://www.raspberrypi.org/forums/viewtopic.php?t=176612#p1126262


1
fonte primária: en.wikipedia.org/wiki/Magic_SysRq_key (por favor, cuide da sua disposição do teclado)
Fabian

1

Isto não é muito difícil. Vá para o prompt de comando e digite sudo halt. Digite sua senha, se necessário. Quando não houver nada na tela, puxe o plugue.

Informações do site do Raspberry Pi.


Gostaria apenas de acrescentar que, depois que a tela escurecer, verifique novamente para garantir que a luz verde também apague.
SDsolar 16/09/16

1

Há também uma placa GPIO chamada Pi Supply, que possui um botão liga / desliga, gerenciamento de energia e bloqueio para travamentos. Também é útil se o seu plugue estiver atrás da TV e for difícil de acessar. Você ainda precisa desligar normalmente, mas ele desliga o Raspberry Pi.

Se você estiver preocupado em usar a porta micro USB de energia normalmente, poderá obter um adaptador USB de macho para fêmea e conectar sua fonte de alimentação a isso.


1

Existem várias maneiras de desligar o pi! Apenas puxar o plugue sem desligar corretamente pode corromper o seu cartão SD!

Para desligar, use sudo shutdown -nowou sudo shutdown -timeinforme o desligamento em minutos.

Para reiniciar, use sudo rebootpara reiniciar e sudo reboot -time in minutesligar novamente ou use apenas sudo rebootpara reiniciar agora sudo shutdownsem o -timepadrão de 1 minuto para cancelar o desligamento.sudo shutdown -c

Nota: Você também pode pressionar o botão raspberry pi e clicar em ligar. Em seguida, o desligamento ou reinicialização, bem como o desligamento e a reinicialização, são imediatos!


Atualizar:

Conforme descrito em algumas das outras respostas neste post:

sudo halt

Também funcionará: quando não houver nada na tela, basta puxar o plugue!


"nenhuma maneira de ligar sem puxar o plugue e colocá-lo de volta" -> Incorreto. O cabeçalho RUN pode ser usado para fazer uma redefinição forçada do SoC, fazendo com que ele seja inicializado (independentemente de o sistema operacional ter sido desligado ...): raspberrypi.stackexchange.com/q/29339/5538 Em alguns modelos, eles são rotulados P6, não EXECUTAR.
goldilocks

@goldilocks Obrigado Eu não sabia que eu o retirei do meu post
User98764431

0

Você realmente não precisa de um interruptor para o seu Raspberry Pi. Eu uso um hub USB para a fonte de alimentação que possui chaves liga / desliga. Portanto, sempre que eu quiser desligar o Raspberry Pi, apenas desligo o interruptor USB.


20
Não é uma boa idéia que apenas o poder do Pi - YOu possa arriscar a perda ou corrupção de dados em quedas repentinas de energia. Melhor sempre desligar como pretendido. por exemplo - FreeNAS (baseado no FreeBSD) é seguro fazer isso porque a raiz é somente leitura; Mas, porque é um NAS! os dados podem ser perdidos durante a gravação em seus discos rígidos. Portanto, final do dia. Sempre use métodos de desligamento implementados!
Piotr Kula #

0

Você só deve puxar o plugue se o LED verde estiver apagado. O led verde pisca, se a máquina estiver gravando no cartão SD.


0

Os comandos normais do unix funcionam com o Linux, assim:

O init 0 irá desligá-lo para que seja seguro puxar o plugue.

O init 6 será reiniciado.

Ao contrário do unix, não há necessidade real de sincronizar; sincronizar; antes de desligar. Mas simplesmente puxar o plugue pode causar erros; portanto, use o desligamento ou o init 0 antes de desconectar a energia. Se você interromper a energia inesperadamente, use o fsck para verificar e / ou corrigir quaisquer problemas que possam surgir.

Pode haver um caso para fazer a sincronização completa; sincronizar; sincronizar; dormir 30; interrompa se você tiver um sistema de arquivos externo que não desmonte corretamente. Você saberia se isso é um problema executando o fsck em sistemas de arquivos externos logo após a inicialização. Se estiver encontrando problemas, convém fazer a coisa toda. Mas eu nunca vi isso acontecer com o meu Rpi3.


0

Sempre use um comando para desligar e desligar o Raspberry Pi. Eu uso o sudo halt como muitos outros usuários. Eu recomendo fazer o backup do seu cartão SD, acidentalmente desconectei o meu e corrompi a imagem de alguma forma. É mais fácil desligar do que gravar uma nova imagem e começar de novo

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.