Có phải dừng lại giống như tắt máy -Hình và tắt nguồn giống như tắt máy -Piến?


Câu trả lời:


26

Đó là một chút lịch sử.

haltđã được sử dụng trước ACPI (hôm nay sẽ tắt nguồn cho bạn) *. Nó sẽ tạm dừng hệ thống và sau đó in một thông báo tới hiệu ứng "bây giờ tắt nguồn rồi". Trước đó, có các công tắc bật / tắt vật lý, thay vì nút nguồn điều khiển ACPI kết hợp của các máy tính hiện đại.

poweroff, tự nhiên sẽ tạm dừng hệ thống và sau đó tắt nguồn ACPI.

* Những ngày haltnày đủ thông minh để tự động gọi poweroffnếu ACPI được bật. Trong thực tế, chúng là chức năng tương đương bây giờ.


Thú vị: trên máy tính xách tay của tôi chạy Gentoo, /sbin/powerofflà một liên kết tượng trưng đến /sbin/halt.
phunehehe

Cảm ơn, bahamat! Tôi đang nói về hai lựa chọn cho lệnh shutdown. Là lệnh haltgiống như shutdown -H, và lệnh poweroffgiống như shutdown -P? @phunehehe cũng vậy.
Tim

@phunehehe: Vâng, tôi khá chắc là bây giờ họ giống nhau, nhưng không thèm nhìn.
bahamat

@Tim: Vâng, những lá cờ đó giống như gọi lệnh. Như tôi đã nói, đó là một sự khác biệt lịch sử.
bahamat

1
Ngày trở lại, haltđược sử dụng để làm điều đó. Không có trật tự tắt máy, chỉ cần dừng những gì máy đang làm ngay lúc đó và ở đó. Vấn đề thường gặp là sync;sync;sync;haltđảm bảo tất cả các bộ đệm đã được ghi ra đĩa.
kurtm

15

Chúng không giống nhau, chỉ liên quan rất chặt chẽ. Trong thực tế, trừ khi bạn muốn chỉ định một thời gian cụ thể để tắt máy hoặc buộc khởi động lại / tạm dừng / tắt nguồn ngay lập tức, điều đó thực sự không quan trọng cho dù bạn chạy shutdown -hhay halt... hoặc shutdown -rso với reboot. Mọi thứ trước đây không thuận tiện lắm, nhưng đây là cách nó hoạt động (rất nhiều cơ hội cho sự mơ hồ hoặc lỗi người dùng đã bị xóa / xóa).

/sbin/shutdownthực hiện nhiều công việc "dọn dẹp" như thông báo cho người dùng, chặn thông tin đăng nhập mới trong khi hệ thống đang tắt. Nó cũng có thể được yêu cầu tắt hệ thống tại một thời điểm nhất định hoặc trong XX phút - cảnh báo người dùng đăng nhập thường xuyên bị tắt máy sắp xảy ra.

Nó cũng thay đổi runlevel thành 0( halt/ poweroff) hoặc 6( reboot) để kích hoạt hệ thống dừng các dịch vụ đang chạy, ngắt kết nối đĩa, v.v. để chuẩn bị cho việc dừng thực tế, tắt nguồn hoặc khởi động lại.

Khi tất cả đã được thực hiện, sau đó nó gọi /sbin/halt, /sbin/reboothoặc /sbin/poweroff( rebootpoweroffthường là các liên kết tượng trưng halt, để diễn giải chúng như halt -rhalt -Ptương ứng).

Tuy nhiên, lưu ý rằng nếu halt/ reboot/ poweroffđược gọi khi hệ thống KHÔNG ở runlevel 0hoặc 6sau đó họ sẽ gọi shutdownđể thực hiện công việc của mình trừ khi tùy chọn -fhoặc forceđược sử dụng.

(Chi tiết về cách chạy cấp được giải thích có thể thay đổi từ distro để distro, nhưng 06được sử dụng như mô tả ở đây trong Debian và Debian các dẫn xuất như Ubuntu).

Xem các trang người đàn ông cho shutdownhaltcho biết thêm.

Cuối cùng, điểm khác biệt giữa haltpowerofftrạng thái là haltlàm mọi thứ thực sự tắt nguồn máy (trên một số loại phần cứng, điều này có nghĩa là nó rơi vào bộ tải khởi động ROM hoặc tương tự. Trên hầu hết phần cứng PC, nó chỉ dừng lại), trong khi poweroffhoàn thành bước cuối cùng và tắt. reboot, tất nhiên, được chuyển sang trạng thái dừng và sau đó khởi động lại máy tính.

BTW, mặc định thường là poweroffhoặc reboot, nhưng bạn có thể sử dụng -Hlàm đối số shutdownđể làm cho nó dừng lại thay thế. Điều này không hữu ích trên các hộp linux dựa trên PC (nhưng hữu ích trên các máy, như hộp sparc, có màn hình khởi động phần sụn. Có thể nó có thể trở nên hữu ích trên các máy mới hơn với dòng lệnh EFI).


1
Đây là một câu trả lời tập trung vào Linux cho câu hỏi không dành cho hệ điều hành. Không phải tất cả shutdowncác lệnh đều có khái niệm về mức độ chạy. shutdownchủ yếu không gọi halt/ reboot/ poweroff; trớ trêu thay, đó là trên một vài hệ thống không phải là Linux mà sự khôn ngoan nhận được này vẫn còn đúng cho đến ngày nay. Và nơi mà các điểm liên kết tượng trưng là không nhất thiết halt; không chỉ vậy, trong một số bộ công cụ chúng không phải là liên kết tượng trưng nào cả. Xem unix.stackexchange.com/a/196471/5132 để biết thêm chi tiết.
JdeBP
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.