Como reduzir o tempo de desligamento do computador no linux. Reinicialização suave e desligamento instantâneo do computador no Ubuntu

Buffers de arquivo Sistemas Linux armazenados na memória e apenas ocasionalmente gravados em disco. Isso acelera as operações de E/S de disco, mas aumenta o risco de perda de dados no caso de uma falha repentina.

Os sistemas UNIX e Linux tradicionais eram muito exigentes quanto ao procedimento de desligamento. Os sistemas modernos são mais tolerantes (especialmente quando se trata de um sistema de arquivos altamente confiável como o ext3fs), mas ainda é melhor desligar normalmente, se possível. O desligamento incorreto do computador pode levar ao aparecimento de erros difíceis de encontrar e não óbvios e, às vezes, a uma falha completa do sistema.

Reinicie o sistema para computador pessoal- uma solução para quase todos os problemas. Mas ao trabalhar no Linux, recomendamos que você pense primeiro e só depois reinicie. Os problemas que ocorrem no Linux tendem a ser sutis e complexos, portanto, a reinicialização produz o resultado esperado com muito menos frequência do que em outros sistemas. Além disso, o processo de reinicialização do Linux leva muito tempo, o que gera transtornos para os usuários.

É necessário reinicializar quando um novo dispositivo é conectado ou um dispositivo em funcionamento congela para que não possa ser inicializado. Se um arquivo de configuração for modificado e consultado apenas na inicialização, as alterações só terão efeito após uma reinicialização. E, finalmente, se for impossível se registrar no sistema, simplesmente não há outra saída a não ser reiniciar.

Se um dos scripts de inicialização do sistema for modificado, você precisará reinicializar pelo menos para verificar se o sistema funciona com sucesso após as alterações. Se um problema não surgir nas próximas semanas, você não se lembrará dos detalhes das últimas alterações posteriormente.

Ao contrário da inicialização, que é a única maneira, você pode parar e reiniciar o sistema de diferentes maneiras:

  • desligue a energia;
  • digite o comando de desligamento;
  • use os comandos halt e reboot;
  • altere o nível de execução do daemon init usando o comando telinit;
  • execute o comando poweroff para solicitar que o sistema desligue a energia.

Desligar no Linux

Mesmo em sistemas computadores desktop desligar a energia não é a melhor maneira de desligar o sistema. Isso pode resultar em perda de dados e corrupção do sistema de arquivos.

Alguns computadores têm um botão de parada suave que, quando pressionado, executa uma série de comandos que desligam normalmente o sistema. Se você não tiver certeza se o seu computador suporta esse recurso, não tente descobrir pressionando o botão liga/desliga enquanto o sistema estiver funcionando! Haverá muito menos problemas se você parar o sistema manualmente.

Claro, a previsão é boa dentro da razão. Em caso de inundação ou incêndio, é melhor desligar a energia se simplesmente não houver tempo para desligar adequadamente o sistema. Era uma vez nas salas de máquinas um botão de emergência que permitia desligar todos os equipamentos ao mesmo tempo.

Equipe desligar: a maneira correta de desligar o sistema

O comando shutdown é a maneira mais segura e correta de desligar ou reinicializar o sistema ou retornar ao modo de usuário único.

Você pode instruir o comando a pausar antes de desligar o sistema. Enquanto espera, a equipe envia mensagens aos usuários cadastrados em intervalos cada vez mais curtos, avisando sobre um próximo evento. Por padrão, as mensagens indicam que o sistema está sendo desligado e indicam o tempo restante antes que o desligamento ocorra. Opcionalmente, o administrador pode adicionar sua própria mensagem curta explicando por que o sistema está sendo interrompido e aproximadamente quanto tempo levará antes de poder fazer login novamente. Após emitir o comando shutdown, os usuários serão impedidos de efetuar login, mas verão a mensagem fornecida pelo administrador.

Com o comando shutdown, você pode especificar o que o sistema deve fazer após executar o comando: stop (-h) ou reboot (-r). Você também pode especificar se o comando fsck (-F) deve forçar uma verificação de disco após uma reinicialização ou não (-f). Por padrão, o Linux automaticamente ignora essa verificação se os sistemas de arquivos foram desmontados corretamente.

O comando a seguir lembra os usuários de um procedimento de manutenção programada e desliga o sistema às 9h30:

$ desligamento -h 09:30 "Descendo para agendado manutenção. O tempo de inatividade esperado é de 1 hora"

Você também pode definir um tempo de desligamento relativo. Por exemplo, o seguinte comando iniciará o processo de desligamento após 15 minutos:

$ shutdown -h +15 "Desativando para reparo de disco de emergência."

Equipe parar: uma maneira mais fácil de parar

O comando halt executa todas as operações básicas necessárias para parar o sistema.

Geralmente é invocado com o comando shutdown -h, mas também pode ser usado sozinho. O comando registra o fato da parada, elimina processos não essenciais, executa a chamada do sistema de sincronização, aguarda a conclusão das gravações de disco e, em seguida, encerra o kernel.

Com a opção -n, a chamada do sistema de sincronização é suprimida. O comando halt -n é usado após a restauração da partição raiz com o comando fsck, para que o kernel não possa sobrescrever correções com versões antigas da partição armazenada no cache.

Equipe reinício: reinício rápido

O comando reboot é quase idêntico ao comando halt. A única diferença é que o sistema reinicializa em vez de parar. O modo de reinicialização também é invocado pelo comando shutdown -r. O comando reboot também suporta o sinalizador -n.

Equipe telinit: altera o nível de execução do daemon iniciar

Você pode usar o comando telinit para instruir o daemon init a pular para um nível de execução específico. Por exemplo, o comando

O comando "shutdown" desliga o sistema com segurança. Todos os usuários logados são notificados de que o sistema está sendo encerrado e as operações de login estão bloqueadas. Você pode desligar o sistema imediatamente ou após um atraso especificado.

Desligue o Linux de linha de comandoé muito conveniente e muitos usuários do sistema controlam seu PC através da linha de comando em tais coisas. Todos os processos são notificados primeiro de que o sistema está se preparando para dormir ou reinicializar via SIGTERM. Isso dá a programas como o vi tempo para salvar o arquivo que está sendo editado, manipuladores de correio e notícias, a capacidade de fazer logout, etc.

"Shutdown" faz seu trabalho sinalizando o processo de inicialização, solicitando que ele altere seu nível de execução. O nível de execução 0 é usado para parar o sistema, o nível de execução 6 é usado para reinicializar o sistema e o nível de execução 1 é usado para colocar o sistema em um estado em que as tarefas administrativas podem ser executadas (modo de usuário único). O nível de execução 1 é o padrão, a menos que as opções -h ou -r sejam especificadas.

Seu sistema pode ter um conjunto diferente de opções para o comando shutdown; Verifique a documentação do dispositivo.

Desligue o Linux a partir da linha de comando

desligamento [-akrhPHfFnc] [-t segundo] Tempo [mensagem]

  1. -a Controla o acesso ao comando shutdown usando o arquivo de acesso de controle /etc/shutdown.allow. Para obter informação adicional consulte a seção Controle de acesso abaixo.
  2. -k Não desliga, mas envia mensagens de aviso como se o desligamento fosse real.
  3. -h Diz ao sistema para desligar e depois pará-lo.
  4. -P Instrui o sistema a desligar e depois desligar.
  5. -H Se a opção -h for especificada, esta opção especifica que o sistema deve inicializar no monitor de inicialização nos sistemas que o suportam.
  6. -f Ignora fsck após a reinicialização.
  7. -F Força fsck após a reinicialização.
  8. -n Não chame init para encerrar processos; Instrua o desligamento para fazer você mesmo.
  • O uso dessa opção não é recomendado e seus resultados nem sempre são previsíveis.
  1. -c Cancela um desligamento pendente. (Isso não se aplica a "desligar agora", que não espera até o desligamento.) Você não pode especificar um argumento de tempo com esta opção, mas pode especificar uma mensagem explicativa que será enviada a todos os usuários.
  2. t segundo. Diga ao inicializador para esperar segundos entre o envio de um aviso e um sinal de morte antes de passar para outro nível de execução.
  3. Tempo O argumento time especifica quando a operação de desligamento deve ser executada.

A hora pode ser formatada de diferentes maneiras:

Primeiro, pode ser uma hora absoluta no formato hh:mm, onde hh é a hora (1 ou 2 dígitos, 0 a 23) e mm é o minuto da hora (em dois dígitos).

Segundo, pode estar no formato +m, onde m é o número de minutos a esperar.

Além disso, a palavra agora é a mesma que indica +0; Ele desliga o sistema imediatamente.

  1. mensagem. Uma mensagem enviada a todos os usuários, juntamente com uma notificação de desligamento padrão.

Detalhes

Se um desligamento for agendado para o futuro, ele criará um arquivo de aviso /etc/nologin que força programas como login a impedir que novos usuários sejam permitidos. Este arquivo é criado cinco minutos antes do início da sequência de desligamento. Shutdown exclui este arquivo se ele for interrompido antes que possa sinalizar a inicialização (ou seja, foi cancelado ou algo deu errado). Ele também o remove antes de chamar init para alterar o nível de execução.

O sinalizador -f significa "reinicializar rapidamente". Isso cria apenas um arquivo de aviso /fastboot que pode ser verificado pelo sistema quando reaparecer. O arquivo rc de inicialização do sistema ("rc" significa "runcom", que é a abreviação de "comandos de execução") pode verificar a presença desse arquivo e decidir não executar o fsck porque o sistema foi desligado corretamente. Depois disso, o processo de inicialização deve remover /fastboot.

O sinalizador -F significa "forçar fsck". Isso cria apenas um arquivo de aviso /forcefsck que pode ser verificado pelo sistema quando ele aparecer novamente. O arquivo boot rc pode verificar se este arquivo está presente e decide executar o fsck com um sinalizador especial "force" para verificar se os sistemas de arquivos desmontados estão corretos. O processo de inicialização deve então remover /forcefsck.

O sinalizador -n faz com que o desligamento não chame init, mas mate tudo processos em execução. O desligamento desabilitará cota, contabilidade e swaps e desmontará todos os sistemas de arquivos.

Controle de acesso

Shutdown pode ser chamado a partir do init quando a combinação de teclas CTRL-ALT-DEL é pressionada, se houver uma entrada correspondente em /etc/inittab. Isso significa que todos os que têm acesso físico ao teclado do console, pode desligar o sistema.

Para evitar isso, o desligamento pode verificar se um usuário autorizado está conectado. Se shutdown for chamado com o argumento -a (adicione isso à chamada shutdown em /etc/inittab), ele verifica se o arquivo /etc/shutdown.allow está presente. Em seguida, ele compara os logins nesse arquivo com a lista de pessoas que estão conectadas ao console virtual (de /var/run/utmp). Somente se um dos usuários autorizados ou root estiver logado, ele entrará em vigor. Caso contrário, ele escreverá uma mensagem

Desligamento: nenhum usuário autorizado conectado

No console físico do sistema. O formato /etc/shutdown.allow é um nome de usuário por linha. Linhas em branco e linhas de comentários (prefixadas com #) são permitidas. Este arquivo atualmente tem um limite de 32 usuários.

Observe que se /etc/shutdown.allow estiver ausente, o argumento -a será ignorado.

Desligando o Linux e ligando o computador

A opção -H simplesmente define a variável de ambiente de inicialização INIT_HALT como HALT, e a opção -P simplesmente define essa variável como POWEROFF. O script de desligamento que chama halt como a última coisa na sequência de desligamento precisa verificar essas variáveis ​​de ambiente e chamar halt com as opções corretas para que essas opções realmente tenham algum efeito.

arquivos

  • /fastboot
    /etc/inittab
    /etc/init.d/halt
    /etc/init.d/reboot
    /etc/shutdown.allow

Desligando o Linux a partir da linha de comando: exemplos

Agende um desligamento do sistema às 8h.

Agende um desligamento do sistema às 20h.

desligamento +15 "Atualizando hardware, o tempo de inatividade deve ser mínimo"

Planeje desligar o sistema em quinze minutos. Junto com a notificação usual aos usuários de que o sistema está sendo desligado, eles receberão uma mensagem descritiva sobre a atualização do hardware.

Desligue o Linux imediatamente

Abaixe o sistema imediatamente e reinicie automaticamente.

Desligue o sistema imediatamente e desligue automaticamente.

Comandos relacionados

  • Parar - Parar o computador.
  • Desligar - Pare o computador.
  • Reinicializar - Pare o computador.
  • Mural - Envie uma mensagem para todos os usuários logados.

Tradução de um maravilhoso recurso em inglês esperança do computador.

Se você ainda tiver alguma dúvida sobre o tópico “Desligando o Linux a partir da linha de comando”, você pode escrever para nós no formulário de comentários no site.

Se você encontrar um erro, destaque um pedaço de texto e clique em Ctrl+Enter.

Vamos considerar como reiniciar ou desligar o computador a partir da linha de comando. Eu uso isso ao instalar algum driver ou quando carga pesada no processador, a interface para de responder às minhas ações (embora isso aconteça muito raramente). É possível matar o processo "guloso" pela linha de comando, mas nem sempre se sabe qual é o processo, então uma solução rápida é reiniciar o computador.

Reiniciamos o computador

Eu faço isso. Vá para o console pressionando um atalho de teclado Ctrl+Alt+F1. No console, você deve primeiro inserir seu nome de usuário e senha (os caracteres não são exibidos ao inserir uma senha). E eu executo o comando:

sudo reboot

Você precisará digitar novamente a senha do administrador e pressionar Enter. O computador será reiniciado.

Você também pode usar o comando para reiniciar o computador. desligar, para isso você precisa usar a chave -r:

Sudo shutdown -r agora

Desligar o computador

Para desligar o computador a partir da linha de comando, você precisa executar o comando:

sudo shutdown -h agora

Você também pode desligar o computador executando o comando:

Sudo parar

E também pode ser usado.

Então o SysRq pode ajudar nas situações aparentemente sem esperança, a menos, é claro, que o kernel esteja em "pânico", o que geralmente é indicado por LEDs de teclado piscando aleatoriamente. Interessante? Então continuamos a ler.

A chave SysRq já existia muito antes do Windows fazer capturas de tela. A IBM originalmente pretendia que a chave SysRq alternasse entre aplicativos sem interrompê-los. Mas isso é história. O Linuxoids adaptou o SysRq para dar ao usuário acesso de emergência ao kernel. Mas mesmo aqui nem tudo é simples. O fato é que para compatibilidade com Windows em ambientes gráficos Linux, uma única tecla SysRq funciona como PrintScreen, e a combinação Alt + SysRq recomendada em tutoriais de console, assim como no Windows, estupidamente coloca a imagem da janela ativa no buffer. Portanto, em Linux com janelas, não há chave SysRq... também! Em vez dessa chave em ambientes gráficos Linux, é usada a combinação mágica Alt + Ctrl + SysRq + letra/número latino, o que aumenta significativamente seu poder sobre a máquina.

M - exibe a quantidade de memória usada. No Ubuntu funciona se você pré-instalar alto nível detalhes de saída.

N - exibe uma lista de tarefas em tempo real. Também funciona se você tiver definido anteriormente o nível de saída como alto.

E - Aborta todos os processos, exceto init.

I - mata todos os processos, incluindo init.

T - imprime uma lista de tarefas no console.

S - sincroniza todos os sistemas de arquivos, gravando todos os dados armazenados em buffer no disco rígido.

R - força o retorno do teclado a um estado de trabalho. Nesse caso, o kernel começa a trabalhar diretamente com o teclado, ignorando o servidor X, e apenas em códigos ASCII.

T - exibe uma lista de processos. Novamente, só funciona em um alto nível de verbosidade de saída.

P - dump de registro do processador. A solicitação pode ser de interesse para os envolvidos na depuração de software.

Q - Exibe eventos de hard timer. Funciona quando a verbosidade de saída é definida como alta.

O - desliga imediatamente o computador.

B - reinicia o computador. É verdade que eles relatam que com o kernel 3.8.0-25, não é uma reinicialização, mas um desligamento. Mas eu mesmo não verifiquei.

U - Remonta todos os sistemas de arquivos para o modo somente leitura.

V - Restaura o framebuffer do console. Digamos que você esteja assistindo a um vídeo no console virtual (sim, o Linux, ao contrário do Windows, também permite isso), e você precisa se lembrar urgentemente do que estava fazendo no console antes do vídeo ser lançado. O comando irá restaurar o framebuffer do console. Em geral, seria necessário contar mais sobre essa coisa interessante - o framebuffer, mas não neste artigo.

W - Mostra todas as tarefas suspensas, se houver.

Z - exibe o conteúdo do buffer de rastreamento do kernel.

Então, DE REPENTE seu Linux congela de tal forma que mesmo reiniciar o Xes com as teclas Alt + Del + BS não ajuda. Calma, apenas calma. Em nenhum caso, não se apresse em pressionar o botão de reset no gabinete do computador. Com uma probabilidade muito alta, você não perderá dados ao pressionar sucessivamente teclas R-E-I-S-U-B(segure Alt+Ctrl+SysRq!). E sabe de uma coisa? Você sempre pode desligar instantaneamente um computador funcionando normalmente com Alt + Ctrl + SysRq + O. A menos, é claro, que você tenha fechado seus programas. :)

No entanto, acho perigoso disponibilizar o SysRq mágico se você permitir que outros usuários trabalhem remotamente em sua máquina ou você mesmo trabalhe com ele remotamente. A questão é que o sinal de interrupção enviado do console remoto pode ser interpretado como Alt+SysRq, com todas as consequências decorrentes. Portanto, se você decidir dar acesso remoto à sua máquina, apenas por precaução, primeiro redefina a variável kernel.sysrq na configuração do sistema. Você também pode escrever um script simples no bash para isso e até anexar um botão na área de trabalho a ele, para que cada vez que você não se preocupe em editar o arquivo de controle de configuração do sistema. Boa sorte!

Este artigo destina-se aos mais novos no Linux e àqueles que estão interessados ​​em como reiniciar o Linux a partir do console. Para mim, reiniciar o computador no terminal ou usar a interface gráfica é elementar, mas essa é a base, nem todos os iniciantes sabem disso e preciso escrever sobre isso.

Hoje abordaremos questões como o comando para reinicializar o Linux a partir do console, reinicializar remotamente e reinicializar diretamente no GUI. Vamos começar com a reinicialização usual do sistema.

Aqui, como dizem, o que poderia ser mais fácil. Considere primeiro reinicializar no Ubuntu Unity. Basta clicar no botão de engrenagem à direita canto superior tela e selecione Desligar:

Em seguida, na janela que se abre, clique no item:

No ambiente de desktop Gnome, tudo é muito parecido com o Unity, mas no KDE você precisa abrir o menu principal, vá na aba saída e selecione o item recarregar:

Em seguida, confirme a reinicialização.

Reinicie o Linux no Terminal

E aqui o escopo é muito mais amplo, existem cerca de uma dúzia de comandos que podem ser usados ​​para reiniciar o Linux. Alguns precisam de privilégios de root, outros não, alguns parecem simples e fáceis de lembrar, enquanto outros são longos e complicados. A seguir, veremos todos eles.

O primeiro comando de reinicialização do Linux, o mais comum e simples:

Como você pode ver, o utilitário precisa de direitos de superusuário. Depois de pressionar Enter, o computador será reinicializado imediatamente.

O utilitário de desligamento, que é usado para desligar, também permite reiniciar o computador; para isso, você precisa passar o parâmetro -r para ele. Além disso, você também pode especificar o tempo de reinicialização. Agora - 0 ou agora, após um minuto +1 após dois - +2, e assim por diante:

sudo desligamento -r +1

Em sistemas de inicialização compatíveis com Init Scripts, havia níveis de inicialização do sistema - 0,1,2,3,4,5,6, nível 0 - significava desligamento, 6 reinicialização, outros modos do sistema não nos interessam agora. Você pode alternar entre os níveis com o comando init. Mas, novamente, você precisa de direitos de superusuário. Desta maneira:

O serviço de mensagens do sistema dbus também pode reiniciar o computador:

/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart

Você não precisa mais de direitos de superusuário. Essas eram as maneiras usuais de reiniciar o Linux, mas há mais uma, não padrão ou até duas. Estas são as chaves mágicas do SysRq. Kernel Linux monitora o pressionamento de certas combinações de teclas e executa as ações necessárias em resposta a elas. Primeiro habilite o suporte ao sysrq:

echo 1 > /proc/sys/kernel/sysrq

É melhor fazer isso com antecedência, pois esse método é útil quando o sistema está congelado e não reage a nada:

nano /etc/sysctl.conf

kernel.sysrq=1

Ativar SysRq combinações segure Alt + SysRq e pressione o código da tecla. Para uma reinicialização normal, é recomendável usar a seguinte sequência: R E I S U B, pressione as teclas na mesma seqüência com um intervalo de cerca de um segundo.

  • R- retorna o controle do teclado se o servidor X foi finalizado incorretamente;
  • E- o kernel envia um sinal SIGTERM para todos os processos, exceto init;
  • eu- envia um sinal SIGKILL para todos os processos, exceto init;
  • S- o kernel sincroniza os sistemas de arquivos, todos os dados do cache são transferidos para o disco rígido;
  • você- remonta todos os sistemas de arquivos em modo somente leitura;
  • B- reinicialização imediata, sem sincronização e preparações adicionais.

Antes de reinicializar, o sistema aguarda a finalização de todos os processos, interrompe todos os serviços, desmonta e monta sistemas de arquivos somente leitura. Isso é o que fazemos pressionando essas combinações de teclas em sequência. Mas se você precisar reiniciar o sistema agora sem esperar o desligamento de todos os processos, por exemplo, o servidor, você pode enviar imediatamente um sinal B. Assim: Alt+SysRq+B.

SysRq pode ser usado sem atalhos de teclado escrevendo código desejado operações para o arquivo /proc/sysrq-trigger:

echo b > /proc/sysrq-trigger

O sistema será reinicializado como está, sem interromper os serviços e preparar os sistemas de arquivos, de modo que os dados não salvos podem ser perdidos e sistema de arquivo danificado.

Reinicialização remota do Linux

Se você tiver acesso ao servidor via ssh, é muito fácil reiniciar o linux remotamente usando um dos comandos acima, por exemplo:

ssh [e-mail protegido]/sbin/reboot

Mas, novamente, para esta operação você precisa ter permissões de root em um servidor remoto.

conclusões

Agora você sabe como reiniciar o linux, você sabe até como reiniciar o servidor via ssh. Se tiver alguma dúvida, pergunte nos comentários!

Postagens relacionadas: