Apakah shutdown.exe diperlukan untuk mematikan Windows?

36

Apakah file tersebut C:\windows\system32\shutdown.exediperlukan untuk mematikan atau me-restart Windows?

Mukul Kumar
sumber
16
Coba ganti namanya menjadi sesuatu yang lain dan lihat.
martineau
10
@MukulKumar Seseorang yang ingin mengetahui efeknya, dan tahu bahwa mereka dapat dengan mudah membalikkannya?
Jon Bentley
8
@theGreenCabbage: Anda perlu mengeluarkan shutdown -s -t 0- shutdownhanya bantuan polos yang menampilkan.
LawrenceC
9
Mencabut kabel komputer harus dimatikan, terlepas dari nama file apa pun.
David Starkey
7
@ Davidvidarkarkey: "Matikan" dan "matikan" bukan hal yang sama.
Lightness Races dengan Monica

Jawaban:

31

Pertanyaan Anda tentu saja berasal dari jawaban Anda di https://codegolf.stackexchange.com/a/24011/18907 , khususnya dari kinokijufkomentar pada revisi awal jawaban Anda.

Seperti yang kinokijufdikatakan, Windows bukan Unix. Pada Unices dan Linux, shutdownmemang terlibat dalam proses shutdown penuh. Ini adalah program yang mengirimkan pesan peringatan reguler ke pengguna yang masuk dan yang menulis /run/nologinfile untuk mencegah masuk lebih lanjut beberapa saat sebelum waktu penutupan yang dijadwalkan.

Pada Windows NT, ini tidak terjadi.

Tindakan "Matikan" pada "tombol daya" pada menu Start Windows Explorer, opsi menu "Matikan" di Pengelola Tugas, REBOOT /Sdi TCC atau Ambil Perintah, dan program aplikasi lain yang memungkinkan Anda untuk mematikan sistem semua dimatikan memulai dengan secara langsung memanggil salah satu dari dua panggilan API Win32: InitiateSystemShutdownEx()atau ExitWindowsEx(). Mereka tidak melakukan hal-hal secara tidak langsung dengan menjalankan shutdownprogram. (Itu sebenarnya membutuhkan lebih banyak kode untuk dilakukan daripada hanya memanggil panggilan API Win32.) shutdownProgram, ketika seseorang melakukan shutdown lokal, panggilan panggilan API Win32 yang sama juga.

Sebenarnya winlogon,, csrssdan smssitu adalah program yang mematikan Windows NT. Secara khusus, winlogonpekerjaan utama memproses permintaan shutdown yang ditangguhkan.

Bacaan lebih lanjut

JdeBP
sumber
1
Anda benar-benar seorang penjawab yang masuk akal! Saya menyukai cara Anda melacak kembali ke situasi nyata melalui profil saya.
Mukul Kumar
Perhatikan bahwa pada sistem Linux, shutdownperintahnya sama sekali tidak terlibat dalam proses shutdown penuh; sementara itu mungkin mengirim pesan peringatan atau menyentuh / menjalankan / nologin, semua yang dilakukannya untuk benar-benar mematikan adalah mengirim perintah yang sesuai ke systemd, init, dll., dan keluar. Proses init atau sistem penggantian modernnya benar-benar berfungsi mematikan sistem.
Michael Hampton
Tidak, M. Hampton, mengirim pesan dan menghentikan log masuk adalah bagian yang lengkap dari prosedur shutdown penuh. Jangan berpikir bahwa itu secara ajaib telah pergi dengan Linux. Halaman manual untuk dua Linux shutdownada tepat di depan Anda. Berpikir itu salah seperti omong kosong dalam Pengantar Linux di TLDP yang mengatakan bahwa "UNIX tidak dibuat untuk dimatikan". UNIX memang dibuat untuk ditutup, dan ada cukup banyak buku selama 40 tahun terakhir untuk para profesional UNIX yang membahas prosedur lengkap, dengan pesan peringatan kepada pengguna sebagai langkah # 1.
JdeBP
Bahkan ada buku untuk para profesional Linux. Saya akan menyambungkan Panduan Studi LPIC Rod Smith , yang ada shutdowndi halaman 22, tetapi itu tidak ada di perpustakaan saya. Maaf, M. Smith. (-: Perpustakaan saya memiliki orang-orang seperti Referensi SVR5 Coffin (langkah pengguna peringatan yang dijelaskan pada halaman 355 dan 683), Panduan Administrator Sistem SCO UNIX (peringatan kepada pengguna sebagai shutdown langkah pertama pada halaman 52–53), dan bahkan Fielder's / Administrasi Sistem UNIX Hunter's (seluruh bab 6 adalah tentang shutdown, dengan pengguna peringatan di awal bab). Orang dapat menemukan lebih banyak buku untuk para profesional yang membahas hal ini
JdeBP
55

Tidak.

Explorer tidak memanggil perintah ini ketika Anda mematikan dari menu Start.

Mematikan sistem dimungkinkan dengan panggilan API Win32 (jawaban @ JdeBP memberikan perincian tentang hal itu jika tertarik). Perintah ini hanya cara mudah untuk melakukannya dari skrip, tugas yang dijadwalkan, atau dialog Run.

LawrenceC
sumber
Sebenarnya, shutdown.exebahkan tidak melakukan shutdown yang anggun.
kinokijuf
Hati-hati dengan jawaban itu! Explorer tidak memanggil perintah itu, tetapi proses lain yang mematikan atau me-restart windows lakukan: dan itu bukan hanya 'cara mudah untuk melakukannya' jika skrip atau tugas terjadwal adalah installer atau tugas pemeliharaan terjadwal dari sysadmin Anda.
Nigel Heffernan
1
Itu tidak membuatnya "perlu", Nil. Lihat konteks pertanyaan (yang tidak ada dalam pertanyaan, tetapi ada dalam jawaban saya dan apa yang ditunjukkan di sana) untuk bantahan yang dipertanyakan si penanya, dan pernyataan tentang shutdownpertanyaan yang dibuat oleh si penanya. Penginstal (bagian dari ini) sering ditulis dalam bahasa yang dikompilasi yang hanya memanggil Win32 API.
JdeBP
8

Seperti yang dijelaskan oleh ultrasawblade (upvote), shutdown sistem adalah panggilan API Win32 ke: ExitWindowsEx

Tautan ini juga memiliki contoh tentang cara menerapkan shutdown dari C. Juga, Anda dapat melakukannya dari C # menggunakan P / Invoke (Platform Invoke). pinvoke.net memiliki banyak tanda tangan yang tersedia untuk digunakan: http://www.pinvoke.net/default.aspx/user32/exitwindowsex.html

thepip3r
sumber