"Shutdown now" ou "shutdown -h now" para desligar o Raspberry Pi?

12

Eu sou novo no Linux (usando Raspbian) e Raspberry Pi, e estou me perguntando qual dos dois comandos mencionados no título que devo usar ao desligar meu Pi. Eu pesquisei no Google, mas ainda não entendi a diferença entre os dois, importa qual deles eu uso?

Apenas um cara
fonte

Respostas:

13

Tente digitar man shutdown. As páginas de manual fornecem uma lista completa das opções que um comando pode executar e uma explicação do que eles fazem. No caso de -h:

-h Solicita que o sistema seja interrompido ou desligado depois de desativado, com a opção de qual resta para o sistema.

A diferença entre incluir a -hopção ou não é pequena e é irrelevante nesse caso, pois você não pode desligar o Pi de qualquer maneira, não sem remover manualmente a energia USB.

Greenonline
fonte
5

A documentação está em man shutdown. 1

-P, --poweroff
           Power-off the machine (the default).

[...]

-h
           Equivalent to --poweroff, unless --halt is specified.

Às vezes, os comandos têm opções aparentemente redundantes como essa, porque precisam atender às especificações de vários contextos diferentes. A lógica simples nos diz que, uma vez que poweroffé o padrão de qualquer maneira, usar -hé redundante (novamente, existe para satisfazer uma especificação externa; algumas implementações de shutdownpodem não funcionar dessa maneira por padrão, mas todas as que estão em conformidade serão implementadas -h).

Como o pi em si não pode desligar (está conectado == ou não), não há sentido em usá- powerofflo, mas não causará nenhum dano. Pode fazer a diferença no WRT da maneira como o LED vermelho pisca no final (você pode comparar com o shutdown -Hque vê). Observe que o principal objetivo shutdowné parar (interromper) a execução do SO.

Então você pode usar qualquer um dos formulários.


1. Este é realmente do Raspbian jessie e vem com o systemd; é um pouco diferente do desligamento do Raspbian wheezy (a resposta de Greenonline cita isso), que é um exemplo do que menciono no próximo parágrafo sobre diferentes implementações que atendem à mesma especificação. O processo de desligamento é na verdade parte do sistema init , que é o SysV no wheezy e o systemd no jessie.

Cachinhos Dourados
fonte
1

eu prefiro

sudo halt

Não me lembro por que escolhi isso, mas, por qualquer motivo, outros comandos causam problemas. Isso funciona perfeitamente. Para reiniciar:

sudo restart
otah007
fonte
2
Se você executar apenas um halt, poderá causar perda de dados. Uma prática muito melhor seria sudo sync;sync;halt, pois isso sincroniza o armazenamento de dados (ou seja, discos rígidos, cartão SD), com todos os dados em cache não gravados ainda na memória, antes de interromper o sistema.
Greenonline 27/07/2015
2
@ Greenonline, se você executar um halt nível de execução 0 ou 6 , isso poderá causar perda de dados. Em qualquer outro nível de execução, é equivalente a shutdown -h now.
Mark
1
Por que os usuários tendem a ignorar a existência do comando "init" em sistemas operacionais semelhantes ao Unix? init 0para encerrar, init 6reiniciar
rkosegi
@ Greenonline, @ Mark, a partir de agora vou usar shutdown -h now, não percebi que haltera perigoso!
Otah007 13/08/2015