O arquivo é C:\windows\system32\shutdown.exenecessário para desligar ou reiniciar o Windows?
shutdown -s -t 0- uma planície shutdownexibe apenas ajuda.
O arquivo é C:\windows\system32\shutdown.exenecessário para desligar ou reiniciar o Windows?
shutdown -s -t 0- uma planície shutdownexibe apenas ajuda.
Respostas:
É claro que sua pergunta se origina da sua resposta em https://codegolf.stackexchange.com/a/24011/18907 , em particular do kinokijufcomentário da revisão inicial da sua resposta.
Como kinokijufdito, o Windows não é Unix. No Unices e Linux, shutdownestá realmente envolvido no processo de desligamento completo. É o programa que envia mensagens de aviso regulares aos usuários que efetuaram login e que grava o /run/nologinarquivo para impedir o logon adicional pouco antes do horário de desligamento programado.
No Windows NT, esse não é o caso.
A ação "Desligar" no "botão liga / desliga" no menu Iniciar do Windows Explorer, a opção de menu "Desligar" no Gerenciador de Tarefas, REBOOT /Sno TCC ou no Take Command e em outros aplicativos que permitem desligar o sistema durante o desligamento. chamando diretamente uma das duas chamadas da API do Win32: InitiateSystemShutdownEx()ou ExitWindowsEx(). Eles não fazem as coisas indiretamente executando o shutdownprograma. (Isso realmente precisa de mais código do que apenas chamar a chamada da API do Win32.) O shutdownprograma, quando alguém está fazendo um desligamento local, também chama as mesmas chamadas da API do Win32.
É verdade winlogon, csrsse smssque são os programas que desligar o Windows NT. Em particular, é o winlogonque faz o trabalho principal de processar solicitações de desligamento diferido.
shutdown. Páginas de manual do FreeBSD 9.2 . 19/03/2013.shutdown. systemdpáginas de manual . 2013. Freedesktop.org.shutdown. upstartpáginas de manual . 2009. Canonical Ltd.InitiateSystemShutdownEx. MSDN. Corporação Microsoft.ExitWindowsEx. MSDN. Corporação Microsoft.REBOOT. Tome a ajuda do Command / TCC. JP Software.shutdowncomando não está envolvido no processo de desligamento completo; Embora ele possa enviar mensagens de aviso ou tocar / executar / nologin, tudo o que faz em relação ao desligamento é enviar o comando apropriado para systemd, init, etc. e sair. O processo init ou seu moderno sistema de substituição realmente faz o trabalho de desligar o sistema.
shutdowns estão bem na sua frente. Pensando que isso é tão errado quanto o absurdo na Introdução ao Linux no TLDP, que diz que "o UNIX não foi feito para ser desligado". O UNIX foi realmente feito para ser desligado e há muitos livros nos últimos 40 anos para profissionais do UNIX que cobrem todo o procedimento, com mensagens de aviso aos usuários como etapa 1.
shutdownna página 22, mas não está na minha biblioteca. Desculpe, M. Smith. (-: Minha biblioteca possui nomes como o SVR5 Reference do Coffin (a etapa de aviso aos usuários descrita nas páginas 355 e 683), um Guia do Administrador do Sistema SCO UNIX (avisos aos usuários como primeira etapa de desligamento nas páginas 52–53) e até a Fielder / Hunter UNIX Administração do Sistema (todo o capítulo 6 é sobre o desligamento, com usuários de advertência no início do capítulo) pode-se encontrar muitos mais livros para profissionais que cobrem isso..
Não.
O Explorer não chama esse comando quando você desliga no menu Iniciar.
É possível desligar o sistema com uma chamada da API do Win32 (a resposta do @ JdeBP fornece ótimos detalhes sobre isso, se estiver interessado). O comando é apenas uma maneira conveniente de fazer isso a partir de um script, tarefa agendada ou na caixa de diálogo Executar.
shutdown.exenem faz um desligamento normal.
shutdownque o questionador fez originalmente. (Essas partes dos) instaladores geralmente são escritos em linguagens compiladas que apenas chamam a API do Win32, a propósito.
Conforme explicado pelo ultrasawblade (upvote), o desligamento do sistema é uma chamada da API do Win32 para: ExitWindowsEx
O link também tem um exemplo de como implementar um desligamento a partir de C. Além disso, você pode fazê-lo em C # usando P / Invoke (Platform Invoke). O pinvoke.net tem várias assinaturas disponíveis para uso: http://www.pinvoke.net/default.aspx/user32/exitwindowsex.html
Não é necessário. shutdown.exeé apenas um utilitário para desligar um computador local ou remoto. Parece que shutdown.exeos usos da API nativa do NtShutdownsystem. Enquanto o Windows usa ExitWindowsEx( como já mencionado ).