Está executando o “sudo sync” e removendo a energia perigosa para o meu sistema?

3

Eu corro um sistema Ubuntu, e às vezes demora um pouco para desligar. Aparentemente, o GNU / Linux tenta, em poucas palavras, parar todos os processos em execução, liberar o diário do sistema de arquivos e, em seguida, cortar a energia. Meu raciocínio é que, quando a energia é removida, todos os dados mantidos na RAM são perdidos e, portanto, o sistema não precisa matar manualmente os processos, pois eles morrerão de qualquer maneira. Correr sudo sync e, em seguida, remover a energia seria uma alternativa segura (e significativamente mais rápida) a um desligamento adequado ( shutdown -h now ) ou apresentaria um perigo de hardware / segurança?

    
por fouric 29.12.2012 / 22:58

2 respostas

3

Fazer sudo sync garante que os dados que foram gravados pelos aplicativos, mas permanecem em um buffer de memória, sejam liberados no disco. Isso é tudo que faz. Ele não desliga o sistema corretamente e provavelmente resulta em perda de dados e outros acidentes. Isso não é catastrófico - falhas de energia são conhecidas por acontecer - mas é melhor evitar isso. Aqui estão algumas coisas que um desligamento adequado faz:

  • Notificar os aplicativos que a sessão está finalizando. Os aplicativos podem solicitar que você confirme o desligamento e pode executar um salvamento de emergência em um arquivo. Eles também podem remover seus arquivos temporários, que de outra forma seriam acumulados.
  • Encerre as conexões de rede corretamente. Se as conexões forem interrompidas repentinamente, haverá um tempo durante o qual o outro lado não está ciente de que seu computador foi e continuará tentando enviar dados ou esperando receber dados de uma conexão que não verá nenhuma outra vida (mesmo que sua reinicializações do computador).
  • Escreve entradas de log confirmando o que aconteceu durante o desligamento. Isso é útil se algo der errado e você precisar investigar.
  • Desmonte todos os sistemas de arquivos. Isso marca os sistemas de arquivos como limpos. Você troca um pouquinho de tempo durante o desligamento por um tempo maior (mas ainda pequeno em escala humana 1,2 ) durante a próxima inicialização, além de um risco menor de acertar um bug (porque casos de falha súbita) não são tão completamente testados quanto a operação normal).

¹ Exceto possivelmente para volumes RAID: se um volume RAID precisar ser verificado, isso pode levar horas - é feito em segundo plano, portanto, não está bloqueando, mas causa um impacto no desempenho.
² Exceto para sistemas de arquivos antigos, não registrados, como o ext2, que exigem um fsck demorado se não forem desmontados corretamente.

    
por 30.12.2012 / 02:40
3

Não, em geral, não seria seguro. O sync grava dados pendentes (dados de operações de gravação que estão atualmente em buffers) em disco. Mas se você não desligou os aplicativos, ainda pode haver dados que o aplicativo ainda não escreveu.

Imagine um programa GUI que lê um arquivo de configuração no início e grava o arquivo de configuração quando o programa é encerrado. Se você alterar uma configuração na GUI, sync não ajudará porque o aplicativo ainda não gravou esses dados.

Outro exemplo é um cliente de torrent. Um sync gravaria os dados mais recentes no disco, mas não os desconectaria da rede de sobreposição. Isso não é educado, deixe a conexão sair do outro lado, se possível, você deve anunciar ao overlay que você está saindo.

Normalmente, você deve dar aos programas a chance de fechar corretamente. Dito isto, há casos em que não faz diferença. No entanto, o sistema de arquivos ainda pode ser marcado como sujo se não for devidamente desmontado.

Nota lateral: sync pode ser invocado com direitos de usuário.

    
por 29.12.2012 / 23:12

Tags