Existe uma maneira mais rápida de desligar o sistema?


20

Ou é shutdown -h nowo mais rápido que pode obter?

Eu procuro algum syscall ou similar que permita ignorar muitas coisas feitas antes do desligamento (em especial para se preocupar com os processos em execução).

Na melhor das hipóteses, gostaria de uma solução relacionada ao kernel, ignorando o init-middleware (como systemdou upstart).

Os riscos relacionados com ie matar diretamente todos os serviços como cups / apache / pulseaudio etc ... Eu não me importaria ....

observação: a solução deve ser vice-software. Pressionar botões no dispositivo não é o que procuro.


8
"Os riscos relacionados a, por exemplo, matar diretamente todos os serviços, como cups / apache / pulseaudio etc ... Eu não me importaria ...." -> Você tem certeza? Deixar um software complexo em um estado inconsistente pode causar surpresas desagradáveis ​​na próxima vez em que for usado. Talvez você deva considerar desativar serviços que você não usa muito (por exemplo, cups, apache); você sempre pode iniciar e parar essas coisas manualmente quando quiser usá-las.
precisa

O método que eu procuro é o momento em que quero evitar que as pessoas tenham acesso ao meu PC. Qualquer atraso no desligamento permite travessuras. Eu prefiro perder dados e expô-los.
humanityANDpeace

2
Também visite isto
Pandya

8
Há uma ideia. Comece a economizar dinheiro para algum hardware novo.
John WH Smith

sudo shutdown -P 0 Eu uso isso e ele começa o processo de desligamento imediato, não importa o que os aplicativos estão abertos
gkmohit

Respostas:


30

Não é muito mais rápido do que usar a funcionalidade System Request (SysRq) e, em seguida, acionar um imediato reboot.

Esta é uma combinação de teclas entendida pelo kernel.

Ative o SysRq:

echo 1 > /proc/sys/kernel/sysrq

Agora, envie-o para reiniciar.

echo b > /proc/sysrq-trigger

b - Reinicialize imediatamente o sistema, sem desmontar ou sincronizar sistemas de arquivos.

Nota:

Embora esse seja um rebootcomportamento, a energia foi cortada, o que não é recomendado.

Se você quiser synce umountos sistemas de arquivos antes da mão, use:

echo s > /proc/sysrq-trigger
echo u > /proc/sysrq-trigger

ou se você quiser apenas desligar o sistema:

echo o > /proc/sysrq-trigger

Combinações de teclas mágicas

Também há combinações de teclas a serem interpretadas pelo kernel:

Alt+ SysRq / Print Screen+Command Key

Teclas de comando:

R- Assuma o controle do teclado de volta do X.
E- Envie o SIGTERM para todos os processos, permitindo que eles terminem normalmente.
I- Envie o SIGKILL para todos os processos, forçando-os a terminar imediatamente.
S- Liberar dados para o disco.
U- Remonte todos os sistemas de arquivos somente leitura.
B- Reinicie.

Citando a partir do Wiki Magic SysRq Key :

Um uso comum da chave mágica SysRq é executar uma reinicialização segura de um computador Linux que foi bloqueado.

  1. Mantenha pressionadas as teclas Alte SysRq(Print Screen).
  2. Enquanto mantém pressionadas, digite as seguintes teclas em ordem, com vários segundos de diferença: REISUB .
  3. Computador deve reiniciar.

Uma maneira de lembrar estes são:

" R eboot E ven I f S istema U tterly B roken" ou simplesmente a palavra " mais ocupada " ler para trás.

Referências

Wiki Magia do SysRq Key
Fedora SysRq


11
É importante observar que um sistema limpo pode levar até menos de 2 segundos para desligar. Quando eu chamo poweroffna minha máquina Arch, eu não posso nem ver o registo de desligamento a ser impresso na tela ...
John WH Smith

Antes do segundo eco, você desejaria executar sync( linux.about.com/library/cmd/blcmdl8_sync.htm ), o que garantiria que os buffers sejam gravados no disco, incluindo superblocos.
Arcege 21/10/14

você sugere que o bser não é o mesmo o. B é melhor?
humanityANDpeace

Depende do que você quer dizer com melhor. Embora a bopção seja muito rápida, não syncos discos, o que não é o ideal, existem muitas opções que fornecem maneiras de reduzir o tempo de desligamento, algumas mais extremas que outras. Há também uma panicopção. Leia o wiki, tentativa e erro para ver o que melhor atende às suas necessidades.
geedoubleya

Bem, no meu sistema estragado, echo o /proc/sysrq-triggerisso cria um jeito. O sistema permanece ligado. De fato, o bsistema se foi. No entanto, é reinicializado, o que significa que a RAM pode ser mantida, o que é uma vulnerabilidade. Gostaria da bopção com o sistema desativado no final. Infelizmente isso não funciona com a oopção no meu sistema. Obrigado pela sugestão para você e também para @Pandya
humanityANDpeace

8

A abordagem desagradável é shutdown -h -n now.

Observe que isso não fará nenhuma limpeza; portanto, os sistemas de arquivos podem ficar inconsistentes, os bancos de dados quebram etc., mas encerram o sistema muito rapidamente.


11
obrigado, isso parece interessante: esta -nopção está documentada e ainda está na versão atual do desligamento?
humanityANDpeace

11
Sim, isso é padrão. Ele diz diretamente ao kernel para largar tudo. Este comando é normalmente usado a partir do último script de desligamento, quando o desligamento regular é concluído.
Simon Richter

7
Mas não posso enfatizar o suficiente para que isso provavelmente cause efeitos negativos, pois é o equivalente a puxar o plugue.
Simon Richter

Maravilhosamente simples e eficaz. Essa opção -n é exatamente o que eu estava procurando. Muito obrigado por responder à pergunta feita. Você não sabe o quão frustrante é fazer uma pergunta e ouvir as barbáries dizerem por que sua pergunta está errada, em vez de apenas respondê-la. Eu votaria esta resposta cinquenta vezes, se pudesse. OBRIGADO.
Joshua Pech 14/09

4

Algumas distribuições oferecem um poweroffcomando que é mais simples que shutdown.

Usando-o com:

poweroff -f

executará uma sincronização de disco e depois desligará. Esse é um bom compromisso entre ser muito mais rápido e ainda executar o desligamento mínimo para garantir que os sistemas de arquivos não estejam corrompidos.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.