Đối với các bản phân phối Linux sử dụng systemd, có sự khác biệt thực tế giữa hai lệnh này không?
systemctl suspend
pm-suspend
Tôi nên sử dụng hay thích?
Đối với các bản phân phối Linux sử dụng systemd, có sự khác biệt thực tế giữa hai lệnh này không?
systemctl suspend
pm-suspend
Tôi nên sử dụng hay thích?
Câu trả lời:
Nói tóm lại, bạn thường thích chế độ treo được tích hợp bởi bản phân phối của bạn. Đối với các distro mà shipd hệ thống, đó là điển hình systemctl suspend
.
Ví dụ, wiki Arch Linux nói :
systemd cung cấp các lệnh gốc để tạm dừng, ngủ đông và tạm ngưng lai, xem "Quản lý năng lượng với systemd" để biết chi tiết. Đây là giao diện mặc định được sử dụng trong Arch Linux.
Với systemd,
pm-utils
và hook của nó không được sử dụng nữa, thay vào đó làsystemd-suspend
.
Lý do tại sao bạn muốn sử dụng bản phân phối của mình là vì các gói của họ quan tâm đến việc tạm dừng / tiếp tục sẽ gửi các tập lệnh hook tích hợp với pm-utils
( /usr/lib/pm-utils/sleep.d
) hoặc systemd
( /usr/lib/systemd/system-sleep/
), vì vậy bạn nên sử dụng cùng một giao diện để có tất cả giao diện phù hợp móc chạy như mong đợi.
Hơn nữa, các bản phân phối thường sẽ gắn phương thức tạm dừng / ngủ đông thích hợp vào ACPI cho các sự kiện phần cứng, môi trường máy tính để bàn (đối với các nút tắt cho phép tạm dừng / ngủ đông) và với trình bảo vệ / khóa màn hình, v.v.
Cả hai pm-suspend
và systemd-suspend
sử dụng các giao diện điển hình giống nhau để thực sự đưa máy tính vào trạng thái ngủ.
Cả hai mặc định sử dụng trình điều khiển tạm dừng của kernel (bằng cách ghi vào /sys/power/state
) và cả hai đều hỗ trợ trình điều khiển tạm dừng bên ngoài (chẳng hạn như uswsusp
, xem tại đây để biết chi tiết về cách nối nó vào systemd.)
Cả hai đều hỗ trợ các tệp cấu hình và tập lệnh hook được gọi trong quá trình tạm dừng hoặc tiếp tục, sự khác biệt chính là vị trí của các tệp (API của hook rất giống nhau):
pm-utils
đọc cấu hình của nó từ các tập tin trong /etc/pm/config.d
và thực hiện hook từ cả hai /etc/pm/sleep.d
và /usr/lib/pm-utils/sleep.d
thư mục.systemd-suspend
đọc cấu hình của nó từ /etc/systemd/sleep.conf
tệp (hoặc tệp trong sleep.conf.d
thư mục) và thực hiện hook từ đó /usr/lib/systemd/system-sleep/
.Vì vậy, từ quan điểm đó, cả hai trông rất giống nhau ...
Nhưng systemd đi sâu hơn vào hỗ trợ của nó để tạm dừng / ngủ đông / tiếp tục, kể từ:
systemctl suspend
vẫn là một tùy chọn.) Kích hoạt đình chỉ qua D-Bus thay vì chạy lệnh thường hữu ích từ môi trường máy tính để bàn.Vì vậy, mặc dù cả hai pm-utils
và systemd-suspend
đạt được sự đình chỉ thực tế của hệ thống theo cùng một cách, việc tích hợp với các thành phần khác của hệ thống khiến nó trở thành vấn đề được gọi là ... Và trên hệ thống vận chuyển phân phối, thì systemctl suspend
điển hình là đúng một cuộc gọi.
pm-utils
được cài đặt theo mặc định và dường như dựa vào systemctl
, nhưng /usr/lib/pm-utils/sleep.d/
có những thứ trong đó và /usr/lib/systemd/system-sleep/
không tồn tại. Tuy nhiên, tôi thấy /lib/systemd/system-sleep/
và nhiều hơn nữa /snap/
, tất cả đều có một hoặc hai tệp trong đó.