Đố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 suspendpm-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 suspendpm-suspendTô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-utilsvà 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-suspendvà systemd-suspendsử 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.dvà thực hiện hook từ cả hai /etc/pm/sleep.dvà /usr/lib/pm-utils/sleep.dthư mục.systemd-suspendđọc cấu hình của nó từ /etc/systemd/sleep.conftệp (hoặc tệp trong sleep.conf.dthư 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 suspendvẫ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-utilsvà 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 đó.