Windows를 종료하려면 shutdown.exe가 필요합니까?


36

파일 C:\windows\system32\shutdown.exe을 종료하거나 Windows를 다시 시작해야합니까?


16
다른 이름으로 바꾸고 참조하십시오.
— martineau

10
@MukulKumar 효과를 알고 싶어하는 사람, 그리고 매우 쉽게 되돌릴 수 있다는 것을 알고있는 사람?
— Jon Bentley

8
@theGreenCabbage : 발행해야합니다 . shutdown -s -t 0일반 shutdown은 도움말 만 표시합니다.
— LawrenceC

9
파일의 이름에 관계없이 컴퓨터의 플러그를 뽑아야합니다.
— David Starkey

7
@DavidStarkey : "종료"와 "종료"는 동일하지 않습니다.
— Monica와의 가벼움 경주

답변:


31

물론 귀하의 질문은 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지연된 종료 요청을 처리하는 주요 작업을 수행합니다.

추가 자료


1
당신은 진정으로 합리적인 답변자입니다! 내 프로필을 통해 실제 상황을 추적하는 방식이 마음에 들었습니다.
— Mukul Kumar

Linux 시스템에서 shutdown명령은 전체 종료 프로세스와 전혀 관련이 없습니다. 경고 메시지를 보내거나 / run / nologin을 터치 할 수 있지만 실제로 종료하는 것과 관련된 것은 systemd, init 등으로 적절한 명령을 보내고 종료하는 것입니다. init 프로세스 또는 최신 대체 시스템은 실제로 시스템 종료 작업을 수행합니다.
— Michael Hampton

아닙니다. M. Hampton, 메시지 보내기 및 로그온 중지는 전체 종료 절차의 본격적인 부분입니다. 리눅스에서 마술처럼 사라 졌다고 생각하지 마십시오. 두 개의 Linux에 대한 매뉴얼 페이지 shutdown가 바로 앞에 있습니다. "UNIX가 종료되지 않았다"고 말하는 TLDP의 Linux 소개 에서 말도 안되는 생각이다 . 유닉스는 실제로 종료되도록 만들어졌으며, 지난 40 년 동안 유닉스 전문가들이 전체 절차를 다루고 있으며 사용자에게 경고 메시지를 1 단계로 알리는 책이 많이 있습니다.
— JdeBP

리눅스 전문가를위한 책도 있습니다. 22 페이지에 있는 Rod Smith의 LPIC 학습 안내서 를 연결 shutdown했지만 내 라이브러리에는 없습니다. 죄송합니다, 스미스 (-: 내 라이브러리에는 Coffin의 SVR5 참조 (355 및 683 페이지에 설명 된 경고 사용자 단계), SCO UNIX 시스템 관리자 안내서 (52-53 페이지의 종료 첫 단계로 사용자에게 경고) 및 Fielder 's / Hunter의 UNIX 시스템 관리 (6 장 전체는 종료에 관한 경고 사용자와 함께 종료에 관한 것입니다.)이 부분을 다루는 전문가를위한 더 많은 책을 찾을 수 있습니다.
— JdeBP

55

아니.

시작 메뉴에서 시스템 종료시 탐색기는이 명령을 호출하지 않습니다.

Win32 API 호출로 시스템을 종료 할 수 있습니다 (@JdeBP의 답변은 관심이있는 경우 이에 대한 자세한 정보를 제공함). 이 명령은 스크립트, 예약 된 작업 또는 실행 대화 상자에서 수행하는 편리한 방법입니다.


실제로, shutdown.exe정상적인 종료조차하지 않습니다.
— kinokijuf

그 대답에주의하십시오! 탐색기는이 명령을 호출하지 않지만 창을 종료하거나 다시 시작하는 다른 프로세스는 다음을 수행합니다. 스크립트 나 예약 된 작업이 설치 관리자이거나 sysadmin의 예약 된 유지 관리 작업 인 경우 '편리한 방법'이 아닙니다.
— Nigel Heffernan

1
그것이 "필요한"것은 아닙니다. 나일. 질문자가 질문하고 있다는 반박과 shutdown질문자가 처음 작성한 것에 대한 진술에 대해서는 질문의 맥락 (질문에는 없지만 내 대답과 거기에 지적 된 내용)을 참조하십시오 . (이 부분들) 인스톨러들은 종종 Win32 API를 호출하는 컴파일 된 언어로 작성됩니다.
— JdeBP

8

ultrasawblade (upvote)에서 설명한대로 시스템 종료는 다음에 대한 Win32 API 호출입니다. ExitWindowsEx

이 링크에는 C에서 종료를 구현하는 방법에 대한 예제도 있습니다. 또한 P / Invoke (Platform Invoke)를 사용하여 C #에서이를 수행 할 수 있습니다. pinvoke.net은 사용 가능한 많은 서명을 가지고 있습니다 : http://www.pinvoke.net/default.aspx/user32/exitwindowsex.html


당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.