파일 C:\windows\system32\shutdown.exe을 종료하거나 Windows를 다시 시작해야합니까?
shutdown -s -t 0일반 shutdown은 도움말 만 표시합니다.
파일 C:\windows\system32\shutdown.exe을 종료하거나 Windows를 다시 시작해야합니까?
shutdown -s -t 0일반 shutdown은 도움말 만 표시합니다.
답변:
물론 귀하의 질문은 https://codegolf.stackexchange.com/a/24011/18907 의 답변 , 특히 kinokijuf답변의 초기 개정에 대한 의견 에서 비롯됩니다 .
말했듯이 kinokijufWindows는 Unix가 아닙니다. Unices 및 Linux에서는 shutdown실제로 전체 종료 프로세스에 관여합니다. 정기적 인 경고 메시지를 로그인 한 사용자에게 전송 /run/nologin하고 예약 된 종료 시간 전에 잠시 동안 추가 로그온을 방지하기 위해 파일을 작성하는 프로그램입니다.
Windows NT에서는 그렇지 않습니다.
Windows 탐색기 시작 메뉴의 "전원 단추", 작업 관리자의 "종료"메뉴 옵션, REBOOT /STCC 또는 Take Command 의 "종료"작업 및 시스템을 종료 할 수있는 기타 응용 프로그램은 모두 시스템 종료를 시작합니다. 두 개의 Win32 API 호출 중 하나를 직접 호출하여 : InitiateSystemShutdownEx()또는 ExitWindowsEx(). 그들은 shutdown프로그램 을 실행하여 간접적으로 일을하지 않습니다 . (실제로 Win32 API 호출을 호출하는 것보다 더 많은 코드가 필요합니다.) shutdown로컬 종료를 수행하는 프로그램은 동일한 Win32 API 호출도 호출합니다.
실제로 winlogon는 csrss이며 smssWindows NT를 종료하는 프로그램입니다. 특히 winlogon지연된 종료 요청을 처리하는 주요 작업을 수행합니다.
shutdown. FreeBSD 9.2 매뉴얼 페이지 . 2013-03-19.shutdown. systemd매뉴얼 페이지 . 2013. Freedesktop.org.shutdown. upstart매뉴얼 페이지 . 2009. Canonical Ltd.InitiateSystemShutdownEx. MSDN. 마이크로 소프트 회사.ExitWindowsEx. MSDN. 마이크로 소프트 회사.REBOOT. Command / TCC 도움말을 참조하십시오. JP 소프트웨어.shutdown명령은 전체 종료 프로세스와 전혀 관련이 없습니다. 경고 메시지를 보내거나 / run / nologin을 터치 할 수 있지만 실제로 종료하는 것과 관련된 것은 systemd, init 등으로 적절한 명령을 보내고 종료하는 것입니다. init 프로세스 또는 최신 대체 시스템은 실제로 시스템 종료 작업을 수행합니다.
shutdown가 바로 앞에 있습니다. "UNIX가 종료되지 않았다"고 말하는 TLDP의 Linux 소개 에서 말도 안되는 생각이다 . 유닉스는 실제로 종료되도록 만들어졌으며, 지난 40 년 동안 유닉스 전문가들이 전체 절차를 다루고 있으며 사용자에게 경고 메시지를 1 단계로 알리는 책이 많이 있습니다.
shutdown했지만 내 라이브러리에는 없습니다. 죄송합니다, 스미스 (-: 내 라이브러리에는 Coffin의 SVR5 참조 (355 및 683 페이지에 설명 된 경고 사용자 단계), SCO UNIX 시스템 관리자 안내서 (52-53 페이지의 종료 첫 단계로 사용자에게 경고) 및 Fielder 's / Hunter의 UNIX 시스템 관리 (6 장 전체는 종료에 관한 경고 사용자와 함께 종료에 관한 것입니다.)이 부분을 다루는 전문가를위한 더 많은 책을 찾을 수 있습니다.
아니.
시작 메뉴에서 시스템 종료시 탐색기는이 명령을 호출하지 않습니다.
Win32 API 호출로 시스템을 종료 할 수 있습니다 (@JdeBP의 답변은 관심이있는 경우 이에 대한 자세한 정보를 제공함). 이 명령은 스크립트, 예약 된 작업 또는 실행 대화 상자에서 수행하는 편리한 방법입니다.
shutdown.exe정상적인 종료조차하지 않습니다.
shutdown질문자가 처음 작성한 것에 대한 진술에 대해서는 질문의 맥락 (질문에는 없지만 내 대답과 거기에 지적 된 내용)을 참조하십시오 . (이 부분들) 인스톨러들은 종종 Win32 API를 호출하는 컴파일 된 언어로 작성됩니다.
ultrasawblade (upvote)에서 설명한대로 시스템 종료는 다음에 대한 Win32 API 호출입니다. ExitWindowsEx
이 링크에는 C에서 종료를 구현하는 방법에 대한 예제도 있습니다. 또한 P / Invoke (Platform Invoke)를 사용하여 C #에서이를 수행 할 수 있습니다. pinvoke.net은 사용 가능한 많은 서명을 가지고 있습니다 : http://www.pinvoke.net/default.aspx/user32/exitwindowsex.html
필요하지 않습니다. shutdown.exe로컬 또는 원격 컴퓨터를 종료하는 유틸리티 일뿐입니다. 그것은과 같은 shutdown.exe용도 네이티브 API가 의 NtShutdownsystem. 윈도우 사용하지만 ExitWindowsEx( 이미 언급 ).