Desligando o Pi com segurança sem SSH ou monitor?


25

No momento, meu Pi não está respondendo ao SSH, e o único monitor HDMI que tenho é uma TV grande a vários metros de distância. Ouvi coisas ruins sobre desconectá-lo, mas tenho outra opção?

Atualmente executando raspbian decapitado, talvez eu pudesse conectar um teclado e adivinhar comandos?


3
Não funcionará por enquanto, mas você pode adicionar um botão aos pinos do GPIO para desligá-lo adequadamente no futuro #
Rizzle Light

Como ponto de dados: há vários anos eu uso o RPis para várias tarefas em robôs móveis movidos a bateria. Estes são cortados com frequência e sem aviso prévio. Ainda não encontrei um problema com qualquer um dos cartões Pis / SD (bem, exceto a conexão SD se soltando da vibração constante e da quebra na parede).
Mike Ounsworth

Você não pode mover temporariamente o monitor HDMI por alguns metros e depois recolocá-lo quando terminar?
jpmc26

@ jpmc26 está descendo uma escada e é uma TV bem grande.
Vpzomtrrfrt

Respostas:


25

Embora deva ser considerado como último recurso, pois aumenta o risco de corrupção do sistema de arquivos, desconectar o cabo geralmente é bom se a luz verde do ACT não estiver piscando intensamente .

Por padrão, o led ACT mostra atividade de E / S no cartão SD. Se estiver desativado, provavelmente o sistema está ocioso. Isso não é necessariamente verdade, mas matar um sistema ocupado com atividades intensivas da CPU (e não E / S) não é inerentemente um problema. O sistema operacional armazena em cache as informações do sistema de arquivos na memória, o que significa que pode estar fora de sincronia com o armazenamento real no cartão SD, mas isso deve ser tratado pelo menos a cada poucos segundos (às vezes você pode deduzir esse padrão do ACT conduziu).

Portanto, se parecer inativo depois de assistir por 5 a 10 segundos e você não tiver outra escolha, vá em frente e desconecte a energia. Novamente, isso não garante nada e há cenários infelizes em que o sistema pode ser bloqueado e a sincronização do sistema de arquivos não ocorre corretamente, mas na maioria dos casos você deve ficar bem.

Provavelmente tive que puxar o cabo de um pi (ou teve uma falha de energia) mais de cem vezes dessa maneira e não consigo me lembrar de ter sofrido por causa disso. Às vezes, coloco o cartão em outra máquina e executo e2fsck -fno sistema de arquivos raiz, o que vale a pena. O sistema operacional irá verificar o sistema de arquivos automaticamente na inicialização, mas é possível que essa verificação falhe (ou não seja feita corretamente) e passe despercebida.


8
O período inativo de 5 a 10 segundos ocorre porque a configuração padrão do Linux para /proc/sys/vm/dirty_writeback_centisecsé de 500 centisegundos (5 segundos). Portanto, se o Linux tiver dados não gravados nos buffers de E / S, ele começará a liberá-los para o disco após 5 segundos, a menos que você os tenha alterado. Em teoria, um FS de registro no diário deve ser seguro contra a corrupção de todo o sistema de arquivos, mesmo que você desligue durante uma gravação, mas esperar que ele fique ocioso oferece uma chance muito maior de também não danificar os arquivos modificados recentemente. (Que diário só protege com ext3 / ext4 dados = journal, o que não é o padrão)
Peter Cordes

31

Chave mágica do SysRq

Isso deve ajudá-lo a começar.

A chave mágica SysRq é uma combinação de teclas entendida pelo kernel do Linux, que permite ao usuário executar vários comandos de baixo nível, independentemente do estado do sistema. É frequentemente usado para se recuperar de congelamentos ou para reiniciar um computador sem danificar o sistema de arquivos . Seu efeito é semelhante ao botão de redefinição de hardware do computador (ou botão liga / desliga), mas com muito mais opções e muito mais controle.

Você pode conectar um teclado e digitar essas coisas às cegas (sem monitor).

Sem corrupção do sistema de arquivos, sem necessidade de hardware extra.


Botão GPIO

Como o Rizzle Light sugeriu, você pode pegar algum tipo de botão e conectá-lo aos pinos do GPIO, e fazer um pouco de mágica de programação para fazer com que o botão execute o comando "poweroff" (com privilégios de administrador, é claro).

Existem vários tutoriais de programação do GPIO on-line que você pode adaptar, como este .

Rahul R Dhobi tem um bom script python de duas linhas que interromperá um Raspberry Pi:

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

execute seu script com privilégios de root.


3
A documentação magic-SysRQ do kernel Linux é a única documentação que eu já imprimi no papel :). (E isso foi quando eu só tinha um computador.)
Peter Cordes

3

Não há necessidade de adivinhar; basta conectar o teclado, digite isso e pressione enter:

sudo shutdown -h now

O shutdowncomando precisa de um privilégio raiz para executar.


4
Você teria que fazer o login primeiro (cego) e usar uma conta privilegiada ou (presumindo o piusuário superpoderoso do Raspbian ...) pré-anexado sudo.
goldilocks

2
@goldilocks: Você provavelmente quer colocar sudono início do comando, em vez de acrescentar que :-)
psmears

@goldilocks: Certo, ainda assim, fazer login não parece tão trabalhoso.
Lightness Races com Monica

11
Eu não estava comentando sobre o nível de dificuldade;) @psmears Opa, deixou você! Corrigido.
goldilocks

@goldilocks: Fair enough :)
Lightness Races with Monica

1

A porta serial é um bom substituto para essas situações e está ativada por padrão.

Você pode tentar se conectar à porta serial usando o Putty. Se isso funcionar, efetue login usando seu nome de usuário e emita "sudo poweroff" para desligar com segurança.

Veja http://elinux.org/RPi_Serial_Connection para mais informações ...


0

Eu estava testando um servidor de arquivos em uma parte da casa sem acesso fácil a um monitor quando me deparei com o mesmo problema. O seguinte funcionou para mim, supondo que seu pi esteja inicializando no ambiente da GUI padrão:

  1. Conecte um teclado (se ainda não estiver pronto).
  2. Clique Alt-F2para abrir uma caixa de diálogo Executar.
  3. Digite o seguinte e pressione Enter para iniciar uma janela do Terminal:

    lxterminal
    
  4. Aguarde alguns segundos para estar seguro e digite o seguinte:

    sudo shutdoown now -h
    
  5. Pressione Enter.

Isso deve desligar o Pi. Se funcionar, as luzes do teclado e todos os dispositivos USB conectados serão desligados. Caso contrário, você pode repetir as etapas acima, caso tenha cometido um erro ao digitar os comandos.


-1

Botão da janela - tecla nove para baixo - 2 vezes entre ... Aproveite ...


11
Obrigado pela resposta - todas as entradas são apreciadas. Pediram-me para sugerir algumas alterações para ajudá-lo a melhorar sua resposta: Primeiro, suponho que por "botão Janela", você quer dizer o botão com o logotipo da Microsoft nos teclados do Windows. Nesse caso, você deve declarar isso explicitamente. Além disso, uma sequência de teclas está implícita na sua resposta, mas não é específica o suficiente. Em suma, reescreva sua resposta para torná-lo inequivocamente claro qual é sua resposta, em vez de confiar em suposições.
Seamus

Observe também que o solicitante está executando o raspbian sem cabeça . Isso significa que o ambiente da área de trabalho não está instalado; portanto, essa sequência de teclas provavelmente não ajudará.
precisa saber é o seguinte
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.