¿Es C:\windows\system32\shutdown.exenecesario el archivo para apagar o reiniciar Windows?
shutdown -s -t 0, un plano shutdownsolo muestra ayuda.
¿Es C:\windows\system32\shutdown.exenecesario el archivo para apagar o reiniciar Windows?
shutdown -s -t 0, un plano shutdownsolo muestra ayuda.
Respuestas:
Su pregunta, por supuesto, se origina en su respuesta en https://codegolf.stackexchange.com/a/24011/18907 , en particular en kinokijufel comentario de la revisión inicial de su respuesta.
Como se kinokijufdijo, Windows no es Unix. En Unices y Linux, de shutdownhecho está involucrado en el proceso de apagado completo. Es el programa que envía mensajes de advertencia regulares a los usuarios que han iniciado sesión y que escribe el /run/nologinarchivo para evitar un mayor inicio de sesión un poco antes del tiempo de apagado programado.
En Windows NT, este no es el caso.
La acción "Apagar" en el "botón de encendido" en el menú de inicio del Explorador de Windows, la opción de menú "Apagar" en el Administrador de tareas, REBOOT /Sen TCC o Tomar comando, y otros programas de aplicaciones que le permiten apagar el sistema. llamando directamente a una de las dos llamadas a la API Win32: InitiateSystemShutdownEx()o ExitWindowsEx(). No hacen cosas indirectamente al ejecutar el shutdownprograma. (Eso realmente necesita más código que hacer que simplemente llamar a la llamada a la API de Win32). El shutdownprograma, cuando se realiza un apagado local, también llama a esas mismas llamadas a la API de Win32.
En realidad winlogon, csrssy smssesos son los programas que cierran Windows NT. En particular, es lo winlogonque hace el trabajo principal de procesar las solicitudes de apagado diferido.
shutdown. Páginas de manual de FreeBSD 9.2 . 2013-03-19.shutdown. systemdpáginas de manual . 2013. Freedesktop.org.shutdown. upstartpáginas de manual . 2009. Canonical Ltd.InitiateSystemShutdownEx. MSDN Corporación Microsoft.ExitWindowsEx. MSDN Corporación Microsoft.REBOOT. Tome Command / TCC Help. JP Software.shutdowncomando no participa en absoluto en el proceso de apagado completo; Si bien puede enviar mensajes de advertencia o tocar / ejecutar / nologin, todo lo que hace con respecto al apagado real es enviar el comando apropiado a systemd, init, etc., y salir. El proceso init o su sistema de reemplazo moderno realmente hace el trabajo de apagar el sistema.
shutdownestán justo en frente de usted. Pensar que es tan incorrecto como el sinsentido en la Introducción a Linux en TLDP que dice que "UNIX no está hecho para ser cerrado". De hecho, UNIX se cerró, y hay muchos libros en los últimos 40 años para profesionales de UNIX que cubren el procedimiento completo, con mensajes de advertencia a los usuarios como paso # 1.
shutdownen la página 22, pero no está en mi biblioteca. Lo siento, M. Smith. (-: Mi biblioteca tiene los gustos de la Referencia SVR5 de Coffin (el paso de advertencia de los usuarios descrito en las páginas 355 y 683), una Guía del administrador del sistema SCO UNIX (advertencias a los usuarios como primer paso de cierre en las páginas 52–53), e incluso Fielder / cazador de administración de sistemas UNIX (todo el capítulo 6 está a punto de parada, con la advertencia a los usuarios al comienzo del capítulo) Uno puede encontrar muchos más libros para los profesionales que cubre esto..
No.
Explorer no llama a este comando cuando cierra desde el menú Inicio.
Es posible apagar el sistema con una llamada a la API Win32 (la respuesta de @ JdeBP proporciona grandes detalles al respecto si está interesado). El comando es solo una forma conveniente de hacerlo desde un script, una tarea programada o el cuadro de diálogo Ejecutar.
shutdown.exeni siquiera hace un cierre elegante.
shutdownque el interrogador hizo originalmente. (Estas partes de) los instaladores a menudo se escriben en lenguajes compilados que solo llaman a la API Win32, por cierto.
Según lo explicado por ultrasawblade (upvote), el apagado del sistema es una llamada de la API Win32 a: ExitWindowsEx
El enlace también tiene un ejemplo sobre cómo implementar un apagado desde C. Además, puede hacerlo desde C # usando P / Invoke (invocación de plataforma). pinvoke.net tiene un montón de firmas disponibles para su uso: http://www.pinvoke.net/default.aspx/user32/exitwindowsex.html
No es necesario. shutdown.exees solo una utilidad para apagar una computadora local o remota. Parece que shutdown.exeutiliza la API nativa 's NtShutdownsystem. Mientras que Windows usa ExitWindowsEx( como ya se mencionó ).