Le fichier est-il C:\windows\system32\shutdown.exe
nécessaire pour arrêter ou redémarrer Windows?
shutdown -s -t 0
- une simple shutdown
affiche uniquement l'aide.
Le fichier est-il C:\windows\system32\shutdown.exe
nécessaire pour arrêter ou redémarrer Windows?
shutdown -s -t 0
- une simple shutdown
affiche uniquement l'aide.
Réponses:
Votre question provient bien sûr de votre réponse sur https://codegolf.stackexchange.com/a/24011/18907 , en particulier de votre kinokijuf
commentaire sur la révision initiale de votre réponse.
Comme kinokijuf
dit, Windows n'est pas Unix. Sur Unices et Linux, shutdown
est en effet impliqué dans le processus d'arrêt complet. C'est le programme qui envoie des messages d'avertissement réguliers aux utilisateurs connectés et qui écrit le /run/nologin
fichier afin d'empêcher toute nouvelle connexion peu de temps avant l'heure d'arrêt prévue.
Sous Windows NT, ce n'est pas le cas.
L'action "Arrêter" sur le "bouton d'alimentation" du menu Démarrer de l'Explorateur Windows, l'option de menu "Arrêter" du Gestionnaire des tâches, REBOOT /S
de TCC ou de Take Command, ainsi que d'autres programmes d'application vous permettant d'éteindre le système. en appelant directement l'un des deux appels d'API Win32: InitiateSystemShutdownEx()
ou ExitWindowsEx()
. Ils ne font pas les choses indirectement en exécutant le shutdown
programme. (Cela nécessite en réalité plus de code que d'appeler simplement l'appel de l'API Win32.) Le shutdown
programme, lorsqu'il effectue un arrêt local, appelle également ces mêmes appels de l'API Win32.
C'est en fait winlogon
, csrss
et smss
ce sont les programmes qui ferment Windows NT. En particulier, c’est winlogon
l’essentiel du travail de traitement des demandes d’arrêt différé.
shutdown
. FreeBSD 9.2 pages de manuel . 2013-03-19.shutdown
. systemd
pages de manuel . 2013. Freedesktop.org.shutdown
. upstart
pages de manuel . 2009. Canonical Ltd.InitiateSystemShutdownEx
. MSDN. Microsoft Corporation.ExitWindowsEx
. MSDN. Microsoft Corporation.REBOOT
. Prise de commande / Aide TCC. Logiciel JP.shutdown
commande n'est pas du tout impliquée dans le processus d'arrêt complet; s'il peut envoyer des messages d'avertissement ou toucher / exécuter / nologin, tout ce qu'il fait pour arrêter réellement consiste à envoyer la commande appropriée à systemd, init, etc., et à quitter. Le processus init ou son système de remplacement moderne effectue en réalité le travail d’arrêt du système.
shutdown
sont sous vos yeux. Penser cela est aussi faux que le non-sens de l' introduction de Linux à TLDP qui dit que "UNIX n'est pas fait pour être arrêté". UNIX a en effet été conçu pour être fermé. Il existe de nombreux ouvrages au cours des 40 dernières années pour les professionnels UNIX qui couvrent toute la procédure, avec des messages d'avertissement destinés aux utilisateurs constituant la première étape.
shutdown
à la page 22, mais ce n’est pas dans ma bibliothèque. Désolé, M. Smith. (-: Ma bibliothèque contient des éléments tels que la référence SVR5 de Coffin (l’étape de mise en garde des utilisateurs décrite aux pages 355 et 683), un Guide de l’administrateur système SCO UNIX (avertissements destinés aux utilisateurs lors de la première étape de la fermeture, pages 52–53), et même de Fielder / L' administration système UNIX de Hunter (l'intégralité du chapitre 6 concerne l'arrêt, avec des avertissements aux utilisateurs au début du chapitre). On peut trouver de nombreux autres livres destinés aux professionnels couvrant ce sujet.
Non.
Explorer n'appelle pas cette commande lorsque vous quittez le menu Démarrer.
Il est possible d'arrêter le système avec un appel d'API Win32 (la réponse de @ JdeBP fournit d'excellents détails à ce sujet si cela vous intéresse). La commande est juste un moyen pratique de le faire à partir d'un script, d'une tâche planifiée ou de la boîte de dialogue Exécuter.
shutdown.exe
ne fait même pas un arrêt gracieux.
shutdown
l'origine. (Ces parties de) les programmes d'installation sont souvent écrits dans des langages compilés qui appellent simplement l'API Win32, soit dit en passant.
Comme expliqué par ultrasawblade (vote ascendant), l’arrêt du système est un appel de l’API Win32 à: ExitWindowsEx
Le lien contient également un exemple sur la façon d'implémenter un arrêt depuis C. Vous pouvez également le faire depuis C # en utilisant P / Invoke (Platform Invoke). pinvoke.net a un tas de signatures disponibles pour utilisation: http://www.pinvoke.net/default.aspx/user32/exitwindowsex.html
Ce n'est pas nécessaire. shutdown.exe
est juste un utilitaire pour éteindre un ordinateur local ou distant. Il ressemble shutdown.exe
utilise les API native « s NtShutdownsystem
. Alors que Windows utilise ExitWindowsEx
( comme déjà mentionné ).