É seguro “Extrair o plugue” depois de executar o comando halt no UNIX

4

Esta é provavelmente uma pergunta estúpida com uma resposta fácil, mas parece que não consigo lançar luz sobre isso depois de horas de Google-ing. Pelo que aprendi, o comando halt no UNIX (por exemplo, BSD) & Sistemas Unix-like (por exemplo, Linux) irão parar a CPU depois de chamar sync . Eu sei que na maioria das distribuições Linux modernas halt é apenas outra maneira de chamar shutdown , mas eu instalei o FreeBSD eo Arch Linux no meu Laptop, e ambos os sistemas parecem fazer o que o halt deveria fazer ( Pare a CPU, mas não desligue o ACPI). Minha pergunta é que depois de chamar

# sync;sync;sync
# halt

é seguro "desligar o plugue" ou cortar a energia (da tomada elétrica na parede)? Depois de chamar halt , o sistema está realmente em estado "desligado"?

Bônus: Depois de interromper o eiter Arch Linux ou FreeBSD, meu computador parece "parado", como se não respondesse, e nada funciona, mas ainda consigo ouvir o ventilador rodando. O ventilador para depois de eu tirar a energia. Então não é um problema, só estou querendo saber se talvez halt não pare todo o hardware, e só pare a CPU?

    
por Ankush 24.10.2015 / 04:01

3 respostas

5

Contanto que sync tenha terminado, provavelmente está sempre OK para desconectar!

Nos velhos e maus dias, você poderia danificar o disco se você puxasse o plugue quando a cabeça não estivesse estacionada, mas atualmente não há realmente nenhum dano de hardware que você possa fazer (provavelmente, talvez ... vamos estar seguros e não faça isso.

Isso só deixa danos no software. Limpar o plugue no meio de um grande trabalho em disco é um plano ruim, mas se a máquina estiver ociosa, você salvou seus documentos abertos e fez um sync para liberar os buffers de gravação. O evento de desligamento provavelmente não vai doer muito. De qualquer forma, após halt o software não fará mais nada, então qualquer dano que já foi feito já foi feito.

Naturalmente, é um ponto discutível, porque halt é apenas um sinônimo para shutdown -H now , que fará um encerramento adequado de todos os processos e serviços em execução, sincronizará todos os dados e desmontará todos os sistemas de arquivos .

Quanto aos outros dispositivos de hardware, eles ainda estão ativos. A tela continuará mostrando o que estava na tela antes que a CPU parasse. Os fãs continuarão fazendo o que fizerem sem controle de software. O disco fará o que seu perfil de energia configurável disser para fazer.

Na verdade, dependendo da sua máquina, a CPU pode nem estar desligada - ela pode estar ocupada girando em torno de um loop infinito, esperando que alguém pressione reset.

    
por 26.10.2015 / 16:51
4

Eu recomendaria contra isso. Embora alguns SOs mais modernos / alias sejam halt to shutdown -h now , é uma prática ruim confiar nisso.

Em sua forma verdadeira, halt é uma cessação muito abrupta de toda a atividade da CPU e é realmente projetada para ser chamada por rc.d no runlevel init 0 depois que o sistema executar uma sequência de encerramento adequada. Embora você tenha sincronizado os discos, o que cuida da maior parte do risco de corrupção de dados, ainda há muito mais limpeza (desmontagens, arquivos de bloqueio, etc.) envolvidos em um desligamento adequado.

Você também corre o risco de que algum processo comece a fazer algo crítico entre as chamadas sync e halt - não importa com que velocidade você as encadeie (a menos que você possa de alguma forma garantir o comportamento do agendador de CPU ... que você não pode).

A melhor prática é chamar shutdown -h now , o que interromperá todos os processos e daemons, desmontará os sistemas de arquivos e, eventualmente, colocará o sistema no mesmo estado interrompido. Então você pode remover com segurança o poder. Esse método também tem a vantagem de invocar um comando ACPI power off (nos modernos sistemas de suporte ACPI) que faz com que a PSU corte a energia (interrompendo assim os ventiladores e tudo mais) diferentemente de (true) halt , que não emite nenhum ACPI comandos e deixará a CPU inativa com tudo ainda ligado.

    
por 26.10.2015 / 17:49
0

Sim, essa é a finalidade do comando halt . Faz com que toda a atividade cesse.

Estes comandos desligam o sistema imediatamente em preparação para o desligamento:

  • encerramento do sudo -h now
  • poweroff do sudo
  • sudo halt
  • sudo init 0

ATENÇÃO A LUZ INDICADORA DO DISCO RÍGIDO

Se houver atividade, o sistema ainda estará em execução. Ele irá parar logo após esses comandos.

Quando ele parar de piscar, você sabe que está encerrado.

    
por 19.06.2018 / 21:25