¿Hay alguna forma más rápida de apagar el sistema?

20

¿O es shutdown -h nowlo más rápido que puede llegar?

Busco algún syscall o similar que permita omitir muchas de las cosas que se realizan antes del apagado (en particular para preocuparse por los procesos en ejecución).

En el mejor de los casos, me gustaría una solución relacionada con el núcleo, siendo ignorante del init-middleware (como systemdo upstart).

Los riesgos relacionados con, por ejemplo, matar directamente todos los servicios como cups / apache / pulseaudio, etc. No me importaría ...

Observación: la solución debería ser el vicio de software. Presionar botones en el dispositivo no es lo que busco.

humanidad y paz
fuente
8
"Los riesgos relacionados con, por ejemplo, matar directamente todos los servicios como cups / apache / pulseaudio, etc ... No me importaría ..." -> ¿Estás seguro? Dejar el software complejo en un estado inconsistente puede generar sorpresas desagradables la próxima vez que se use. Tal vez debería considerar deshabilitar servicios que no usa mucho (por ejemplo, tazas, apache); siempre puede iniciar y detener esas cosas manualmente cuando quiera usarlas.
Ricitos
El método que busco es para el momento en que quiero evitar que las personas tengan acceso a mi PC. Cualquier retraso en el cierre permite daños. Prefiero perder datos y luego exponerlos.
humanityANDpeace
2
También visite esto
Pandya
8
Hay una idea Sin embargo, comience a ahorrar dinero para un nuevo hardware.
John WH Smith
sudo shutdown -P 0 Utilizo este y se inicia el proceso de apagado de inmediato, no importa qué aplicaciones están abiertas
gkmohit

Respuestas:

30

No es mucho más rápido que usar la funcionalidad de Solicitud del sistema (SysRq) y luego desencadenar una acción inmediata reboot.

Esta es una combinación de teclas entendida por el núcleo.

Habilitar SysRq:

echo 1 > /proc/sys/kernel/sysrq

Ahora, envíalo a reiniciar.

echo b > /proc/sysrq-trigger

b - Reinicie inmediatamente el sistema, sin desmontar ni sincronizar los sistemas de archivos.

Nota:

Aunque se trata de una reboot, se comportará como si se hubiera cortado la alimentación, lo que no se recomienda.

Si quieres syncy umountlos sistemas de archivos de antemano, usa:

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

o si solo quieres apagar el sistema, entonces:

echo o > /proc/sysrq-trigger

Combinaciones de teclas mágicas

También hay combinaciones de teclas para usar que son interpretadas por el núcleo:

Alt+ SysRq / Print Screen+Command Key

Teclas de comando:

R- Tome el control del teclado desde X.
E- Envíe SIGTERM a todos los procesos, permitiéndoles finalizar con gracia.
I- Enviar SIGKILL a todos los procesos, obligándolos a finalizar de inmediato.
S- Vaciar datos al disco.
U- Vuelva a montar todos los sistemas de archivos de solo lectura.
B- Reiniciar

Citando de Magic SysRq Key Wiki :

Un uso común de la clave mágica SysRq es realizar un reinicio seguro de una computadora Linux que de otro modo se hubiera bloqueado.

  1. Mantenga presionadas las teclas Alty SysRq(Imprimir pantalla).
  2. Mientras las mantiene presionadas, escriba las siguientes teclas en orden, separadas por varios segundos: REISUB .
  3. La computadora debe reiniciarse.

Una forma de recordar estos son:

" R eboot E Ven I f S istema T tterly B roken" o simplemente la palabra " más ocupado " leer hacia atrás.

Referencias

Magic SysRq Key Wiki
Fedora SysRq

geedoubleya
fuente
11
Es importante tener en cuenta que un sistema limpio puede tardar incluso menos de 2 segundos en apagarse. Cuando llamo poweroffa mi máquina Arch, ni siquiera puedo ver el registro de apagado que se imprime en la pantalla ...
John WH Smith
Antes del segundo eco, desearía ejecutar sync( linux.about.com/library/cmd/blcmdl8_sync.htm ), lo que aseguraría que los buffers se escriban en el disco, incluidos los superbloques.
Arcege
sugieres el bser echod no o. ¿Es b mejor?
humanityANDpeace
Depende de lo que quieras decir con mejor. Si bien la bopción es muy rápida, no incluye synclos discos, lo que no es ideal, hay muchas opciones que proporcionan formas de reducir el tiempo de apagado, algunas más extremas que otras. También hay una panicopción. Lea la wiki y la versión de prueba y error para ver cuál se adapta mejor a sus necesidades.
geedoubleya
Bueno, en mi sistema jodido echo o /proc/sysrq-triggercrea un bloqueo. El sistema permanece encendido. De hecho, el bsistema se ha ido. Sin embargo, se reinicia, lo que significa que la RAM se puede mantener, lo cual es una vulnerabilidad. Me gustaría la bopción con el sistema apagado al final. Lamentablemente, esto no funciona con la oopción en mi sistema. Gracias por la sugerencia para usted y también para @Pandya
humanityANDpeace
8

El enfoque desagradable es shutdown -h -n now.

Tenga en cuenta que esto no hará ninguna limpieza, por lo que los sistemas de archivos pueden volverse inconsistentes, las bases de datos se rompen, etc., pero apaga el sistema muy rápido.

Simon Richter
fuente
1
gracias, esto suena interesante: ¿esta -nopción está documentada y todavía está en la versión actual de apagado?
humanityANDpeace
1
Sí, eso es estándar. Le dice directamente al kernel que deje todo. Este comando se usa normalmente desde el último script de apagado, cuando se ha completado el apagado regular.
Simon Richter
77
Pero no puedo enfatizar lo suficiente que esto probablemente causará malos efectos, ya que es en gran medida equivalente a desconectarlo.
Simon Richter
Maravillosamente simple y efectivo. Esta opción -n es exactamente lo que estaba buscando. Muchas gracias por responder la pregunta que se le hizo. No sabes lo frustrante que es hacer una pregunta y escuchar a todos los barbaros decir por qué tu pregunta es incorrecta en lugar de responderla. Votaría esta respuesta cincuenta veces si pudiera. GRACIAS.
Joshua Pech
4

Algunas distribuciones ofrecen un poweroffcomando que es más simple que shutdown.

Usándolo con:

poweroff -f

realizará una sincronización de disco y luego se apagará. Este es un buen compromiso entre ser mucho más rápido mientras se realiza el apagado mínimo para garantizar que los sistemas de archivos no estén dañados.

La realidad
fuente
0

Intenta usar el comando init:

init 0
Stuxnet78
fuente