Configuração
Sou programador há algum tempo, mas ainda estou um pouco confuso com coisas internas profundas.
Agora. Estou ciente de que também não é uma boa ideia:
- matar -9 um processo (ruim)
- puxe espontaneamente o plugue de energia em um computador ou servidor em execução (pior)
No entanto, às vezes você simplesmente precisa. Às vezes, um processo simplesmente não responde, não importa o que você faz, e às vezes um computador simplesmente não responde, não importa o que você faz.
Vamos supor que um sistema esteja executando o Apache 2, MySQL 5, PHP 5 e Python 2.6.5 através do mod_wsgi.
Nota: Estou mais interessado no Mac OS X aqui, mas uma resposta referente a qualquer sistema UNIX me ajudaria.
A minha preocupação
Cada vez que tenho que fazer uma delas, especialmente a segunda, fico muito preocupado por um período de tempo que algo tenha sido quebrado. Algum arquivo em algum lugar pode estar corrompido - quem sabe qual arquivo? Existem mais de 1.000.000 de arquivos no computador.
Normalmente, estou usando o OS X, por isso executarei uma operação "Verificar disco" por meio do Utilitário de Disco. Ele não apresentará problemas, mas ainda estou preocupado com isso.
E se algum arquivo de configuração em algum lugar fosse ferrado? Ou ainda pior, e se um arquivo binário em algum lugar estiver corrompido. Ou um arquivo de script em algum lugar está corrompido agora. E se algum hardware estiver danificado?
E se eu não descobrir sobre isso até o próximo mês, em um cenário crítico, quando a corrupção ou o dano causar uma catástrofe?
Ou, se dados valiosos já estiverem perdidos?
Minha esperança
Minha esperança é que essas preocupações e preocupações sejam infundadas. Afinal, depois de fazer isso muitas vezes antes, nada realmente ruim aconteceu ainda. O pior é que tive que reparar algumas tabelas do MySQL, mas parece que não perdi nenhum dado.
Mas, se minhas preocupações não são infundadas e danos reais podem ocorrer nas situações 1 ou 2, minha esperança é que haja uma maneira de detectá-lo e prevenir contra ele.
Minhas perguntas)
Isso pode ocorrer porque os sistemas operacionais modernos são projetados para garantir que nada se perca nesses cenários? Poderia ser porque o software moderno foi projetado para garantir que nada se perca? E o design de hardware moderno? Que medidas estão em vigor quando você puxa o plugue de energia?
Minha pergunta é, para ambos os cenários, o que exatamente pode dar errado e que medidas devem ser tomadas para corrigi-lo?
Tenho a impressão de que uma coisa que pode dar errado é que alguns programas podem não ter liberado seus dados para o disco, portanto, qualquer dado altamente recente que deveria ser gravado no disco (digamos, alguns segundos antes da tomada de força ) pode estar perdido. Mas e além disso? E esse problema de perda de dados de 5 segundos pode estragar um sistema?
E a corrupção de arquivos aleatórios escondidos em algum lugar na enorme floresta de arquivos nos meus discos rígidos?
E quanto a danos no hardware?
O que mais me ajudaria
Descrições detalhadas sobre o que ocorre internamente quando você mata -9 um processo ou puxa a energia de todo o sistema. (parece instantâneo, mas alguém pode diminuir a velocidade para mim?)
Explicações de todas as coisas que podem dar errado nesses cenários, juntamente com probabilidades (aproximadas) é claro (isto é, é muito improvável, mas é provável) ...
Descrições de medidas em vigor em hardware, sistemas operacionais e software modernos, para evitar danos ou corrupção quando esses cenários ocorrerem. (para me confortar)
Instruções sobre o que fazer após um kill -9 ou um power pull, além de "verificar o disco", para realmente garantir que nada esteja corrompido ou danificado em algum lugar da unidade.
Medidas que podem ser tomadas para fortalecer a configuração do computador, de modo que, se algo tiver que ser morto ou a energia tiver que ser retirada, qualquer dano potencial será atenuado.
Algumas informações sobre arquivos binários - não é verdade que o arquivo binário apache ou alguma biblioteca poderia ter um byte aleatório ou dois corrompidos no meio, que não sairiam e causariam um problema até mais tarde? Como posso me assegurar de que isso não aconteceu como resultado do poder puxado ou da morte?
Muito obrigado!