En el nivel de aplicación, el más violento que puede obtener es _exit(). La división por cero, segfaults, etc. son todas las señales, que pueden quedar atrapadas; si no están atrapadas, son básicamente las mismas que _exit(), pero pueden dejar un núcleo en función de la señal.
Si realmente quieres un apagado completo, la mejor opción es reducir la potencia de la manera más violenta posible. Invocar/sbin/poweroff -fn es lo más cercano que puede obtener, aunque puede hacer una limpieza en el nivel de hardware en el camino de salida.
Si realmente quiere enfatizar las cosas, su mejor opción es realmente cortar la energía de verdad, instalar algún tipo de relé controlado por software en el cable de alimentación y hacer que el software corte eso. La pérdida incontrolada de poder presentará todo tipo de cosas extrañas. Por ejemplo, los datos en el disco pueden estar dañados debido a RAM losing power before the DMA controller or hard disk. Esto no es algo que pueda probar con otra cosa que no sea cortar la potencia, en la configuración de hardware de producción, en varias pruebas.
Comience a ejecutar su programa, luego acceda a su computadora y, mientras el programa se está ejecutando, desenchufe el cable de alimentación. –
Disculpa, solución inaceptable. – Drakosha
Entonces, en un momento, la aplicación se está ejecutando; al siguiente, estás mirando un símbolo del sistema. En los días de DOS, llamé a esto "tono de marcado". – gbarry