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 호출도 호출합니다.

실제로 winlogoncsrss이며 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.