Il file è C:\windows\system32\shutdown.exenecessario per arrestare o riavviare Windows?
shutdown -s -t 0- un semplice shutdownvisualizza solo aiuto.
Il file è C:\windows\system32\shutdown.exenecessario per arrestare o riavviare Windows?
shutdown -s -t 0- un semplice shutdownvisualizza solo aiuto.
Risposte:
La tua domanda ovviamente nasce dalla tua risposta su https://codegolf.stackexchange.com/a/24011/18907 , in particolare dal kinokijufcommento sulla revisione iniziale della tua risposta.
Come kinokijufdetto, Windows non è Unix. Su Unices e Linux, shutdownè effettivamente coinvolto nel processo di spegnimento completo. È il programma che invia messaggi di avviso regolari agli utenti che hanno effettuato l'accesso e che scrive il /run/nologinfile per impedire ulteriori accessi poco prima del tempo di spegnimento programmato.
Su Windows NT, non è così.
L'azione "Spegni" sul "pulsante di accensione" nel menu Start di Esplora risorse di Windows, l'opzione di menu "Spegni" in Task Manager, REBOOT /Sin TCC o Take Command e altri programmi applicativi che ti consentono di arrestare il sistema quando si avvia lo spegnimento chiamando direttamente una delle due chiamate API Win32: InitiateSystemShutdownEx()oppure ExitWindowsEx(). Non fanno le cose indirettamente eseguendo il shutdownprogramma. (Ciò richiede effettivamente più codice da eseguire rispetto alla semplice chiamata della chiamata API Win32.) Il shutdownprogramma, quando si esegue uno spegnimento locale, chiama anche le stesse chiamate API Win32.
In realtà winlogon, csrsse smssche sono i programmi che spegnimento di Windows NT. In particolare, è winlogonquello che fa il lavoro principale di elaborazione delle richieste di arresto differito.
shutdown. Pagine del manuale di FreeBSD 9.2 . 2013/03/19.shutdown. systemdpagine di manuale . 2013. Freedesktop.org.shutdown. upstartpagine di manuale . 2009. Canonical Ltd.InitiateSystemShutdownEx. MSDN. Microsoft Corporation.ExitWindowsEx. MSDN. Microsoft Corporation.REBOOT. Accetta Command / TCC Help. JP Software.shutdowncomando non è affatto coinvolto nel processo di spegnimento completo; mentre può inviare messaggi di avviso o toccare / eseguire / nologin, tutto ciò che riguarda l'arresto effettivo è inviare il comando appropriato a systemd, init, ecc. ed uscire. Il processo di init o il suo moderno sistema di sostituzione fa effettivamente il lavoro di spegnimento del sistema.
shutdownsono proprio di fronte a te. Pensare che sia sbagliato quanto l'assurdità nell'Introduzione a Linux su TLDP che afferma che "UNIX non è fatto per essere chiuso". UNIX è stato infatti progettato per essere chiuso, e negli ultimi 40 anni ci sono molti libri per i professionisti UNIX che coprono l'intera procedura, con messaggi di avviso agli utenti come passaggio 1.
shutdowna pagina 22, ma non è nella mia libreria. Mi dispiace, signor Smith. (-: La mia libreria ha simili riferimenti SVR5 di Coffin (il passaggio degli utenti di avviso descritto alle pagine 355 e 683), una Guida dell'amministratore di sistema UNIX di SCO (avvisi agli utenti come primo passaggio di arresto nelle pagine 52–53) e persino di Fielder / Amministrazione del sistema UNIX di Hunter (l'intero capitolo 6 riguarda l'arresto, con avvertimento agli utenti all'inizio del capitolo) Si possono trovare molti altri libri per i professionisti che lo riguardano.
No.
Explorer non chiama questo comando quando si chiude dal menu Start.
L'arresto del sistema è possibile con una chiamata API Win32 (la risposta di @ JdeBP fornisce grandi dettagli su questo se interessati). Il comando è solo un modo conveniente per farlo da uno script, un'attività pianificata o la finestra di dialogo Esegui.
shutdown.exenon fa nemmeno un arresto grazioso.
shutdownche l'interrogatore aveva originariamente fatto. (Queste parti di) programmi di installazione sono spesso scritti in linguaggi compilati che chiamano semplicemente l'API Win32.
Come spiegato da ultrasawblade (upvote), l'arresto del sistema è una chiamata API Win32 a: ExitWindowsEx
Il collegamento ha anche un esempio su come implementare un arresto da C. Inoltre, puoi farlo da C # usando P / Invoke (Platform Invoke). pinvoke.net ha un sacco di firme disponibili per l'uso: http://www.pinvoke.net/default.aspx/user32/exitwindowsex.html
Non è necessario. shutdown.exeè solo un'utilità per spegnere un computer locale o remoto. Sembra che shutdown.exeusi l' API Native 's NtShutdownsystem. Mentre Windows utilizza ExitWindowsEx( come già accennato ).