Là tập tin C:\windows\system32\shutdown.exe
cần thiết để tắt hoặc khởi động lại Windows?
shutdown -s -t 0
- một đơn giản shutdown
chỉ hiển thị trợ giúp.
Là tập tin C:\windows\system32\shutdown.exe
cần thiết để tắt hoặc khởi động lại Windows?
shutdown -s -t 0
- một đơn giản shutdown
chỉ hiển thị trợ giúp.
Câu trả lời:
Câu hỏi của bạn tất nhiên bắt nguồn từ câu trả lời của bạn tại https://codegolf.stackexchange.com/a/24011/18907 , đặc biệt từ kinokijuf
nhận xét của bạn khi sửa đổi câu trả lời ban đầu của bạn.
Như đã kinokijuf
nói, Windows không phải là Unix. Trên Unices và Linux, shutdown
thực sự có liên quan đến quá trình tắt máy hoàn toàn. Đây là chương trình gửi tin nhắn cảnh báo thường xuyên đến người dùng đã đăng nhập và ghi /run/nologin
tệp để ngăn đăng nhập thêm một thời gian ngắn trước thời gian tắt máy theo lịch trình.
Trên Windows NT, đây không phải là trường hợp.
Hành động "Tắt máy" trên "nút nguồn" trên menu Bắt đầu của Windows Explorer, tùy chọn menu "Tắt máy" trong Trình quản lý tác vụ, REBOOT /S
trong TCC hoặc Lệnh, và các chương trình ứng dụng khác cho phép bạn tắt hệ thống tắt tất cả tắt máy bắt đầu bằng cách gọi trực tiếp một trong hai lệnh gọi API Win32: InitiateSystemShutdownEx()
hoặc ExitWindowsEx()
. Họ không làm những việc gián tiếp bằng cách chạy shutdown
chương trình. (Điều đó thực sự cần nhiều mã để thực hiện hơn là chỉ gọi cuộc gọi API Win32.) shutdown
Chương trình, khi một người đang thực hiện tắt máy cục bộ, cũng gọi các cuộc gọi API Win32 tương tự.
Đó thực sự là winlogon
, csrss
và smss
đó là những chương trình tắt Windows NT. Cụ thể, đó là winlogon
công việc chính của xử lý các yêu cầu tắt máy bị trì hoãn.
shutdown
. Trang hướng dẫn FreeBSD 9.2 . 2013/03/19.shutdown
. systemd
trang hướng dẫn . 2013. Freedesktop.org.shutdown
. upstart
trang hướng dẫn . 2009. Công ty TNHH CanonicalInitiateSystemShutdownEx
. MSDN. Tập đoàn Microsoft.ExitWindowsEx
. MSDN. Tập đoàn Microsoft.REBOOT
. Nhận lệnh / TCC Trợ giúp. Phần mềm JP.shutdown
lệnh hoàn toàn không liên quan đến quá trình tắt máy hoàn toàn; trong khi nó có thể gửi tin nhắn cảnh báo hoặc chạm / chạy / nologin, tất cả những gì nó làm liên quan đến việc thực sự tắt là gửi lệnh thích hợp tới systemd, init, v.v. và thoát. Quá trình init hoặc systemd thay thế hiện đại của nó thực sự làm công việc tắt hệ thống.
shutdown
đang ở ngay trước mặt bạn. Nghĩ rằng điều đó là sai trái như vô nghĩa trong Giới thiệu về Linux tại TLDP nói rằng "UNIX không được thực hiện để tắt". UNIX thực sự đã bị đóng cửa và có khá nhiều sách trong 40 năm qua dành cho các chuyên gia UNIX bao gồm toàn bộ quy trình, với các thông báo cảnh báo cho người dùng là bước # 1.
shutdown
ở trang 22, nhưng nó không có trong thư viện của tôi. Xin lỗi, M. Smith. (-: Thư viện của tôi có những cầu thủ như Coffin của SVR5 tham khảo (những người sử dụng cảnh báo bước được mô tả trên các trang 355 và 683), một quản trị viên của SCO hệ thống UNIX Hướng dẫn (cảnh báo cho người sử dụng như tắt máy bước đi đầu tiên trên các trang 52-53), và thậm chí Fielder của / Quản trị hệ thống UNIX của Hunter (toàn bộ chương 6 nói về tắt máy, với cảnh báo người dùng ở đầu chương). Người ta có thể tìm thấy nhiều sách hơn cho các chuyên gia về vấn đề này.
Không.
Explorer không gọi lệnh này khi bạn tắt từ menu Start.
Việc tắt hệ thống là có thể với lệnh gọi API Win32 (câu trả lời của @ JdeBP cung cấp chi tiết tuyệt vời về điều đó nếu quan tâm). Lệnh chỉ là một cách thuận tiện để thực hiện nó từ một kịch bản, tác vụ theo lịch trình hoặc hộp thoại Run.
shutdown.exe
thậm chí không làm một tắt máy duyên dáng.
shutdown
câu hỏi ban đầu được đưa ra. Nhân tiện, các phần này của trình cài đặt thường được viết bằng các ngôn ngữ được biên dịch chỉ bằng cách gọi API Win32.
Như được giải thích bởi ultrasawblade (upvote), việc tắt hệ thống là một lệnh gọi API Win32 tới: ExitWindowsEx
Liên kết cũng có một ví dụ về cách thực hiện tắt máy từ C. Ngoài ra, bạn có thể thực hiện điều đó từ C # bằng cách sử dụng P / Gọi (Gọi nền tảng). pinvoke.net có sẵn một loạt các chữ ký để sử dụng: http://www.pinvoke.net/default.aspx/user32/exitwindTHERx.html
Nó không phải là cần thiết. shutdown.exe
chỉ là một tiện ích để tắt máy tính cục bộ hoặc từ xa. Dường như shutdown.exe
sử dụng các API Native 's NtShutdownsystem
. Trong khi Windows sử dụng ExitWindowsEx
( như đã đề cập ).