it-swarm-vi.com

Làm cách nào tôi có thể tạm dừng / ngủ đông từ dòng lệnh?

Làm cách nào tôi có thể tạm dừng hoặc ngủ đông máy tính xách tay của mình bằng dòng lệnh mà không cần cài đặt phần mềm bổ sung?

347
user1034

Theo truyền thống, Ubuntu đã hỗ trợ một phương pháp tạm dừng và ngủ đông khá cùn. Không tích hợp tốt với các ứng dụng khác và đôi khi thậm chí không hoạt động trên một số máy. Phương thức mới không yêu cầu root và thông báo cho tất cả các ứng dụng lắng nghe các sự kiện điện.

Phương pháp hệ thống

Bắt đầu với Ubuntu 16.04, phải sử dụng cuộc gọi systemctl (Xem Lệnh tạm dừng trong Ubuntu 16.04 )

systemctl suspend

systemctl hibernate

Phương pháp mới

Xem câu trả lời ở đây trên trang này từ Adam Paetznick liên quan đến việc sử dụng dbus . Lý tưởng nhất là bạn sẽ tạo một phím tắt/script ~/bin/suspend giúp cho việc sử dụng hành động này trở nên dễ dàng.

Để sử dụng trên ssh, bạn nên sửa đổi các quy tắc của bộ chính sách như được phác thảo bởi Peter V. Mørch

Phương pháp cũ

Theo Diễn đàn Ubunt bạn có thể sử dụng các lệnh sau:

pmi action suspend

pmi action hibernate

Điều này yêu cầu bạn cài đặt gói giao diện quản lý nguồn (không được kiểm tra).

Sudo apt-get install powermanagement-interface

Tôi cũng đã tìm thấy các lệnh Sudo pm-suspendSudo pm-hibernate để hoạt động trên netbook của tôi.

294
txwikinger

Cách thân thiện với gnome là sử dụng dbus.

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Suspend

Có hai lợi thế cho lệnh này so với pm-suspend.

  1. Nó sẽ khóa màn hình của bạn (khi tiếp tục) nếu bạn có tùy chọn đó được chọn trong gnome.

  2. Nó không yêu cầu quyền root, vì vậy thật dễ dàng để thêm nó dưới dạng phím tắt.

Như đã đề cập trong các nhận xét trao đổi Suspend trong dòng cuối cùng thành Hibernate tạo một lệnh ngủ đông:

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Hibernate

Nếu chế độ ngủ đông ném Error org.freedesktop.UPower.GeneralError: not authorized thì người dùng của bạn có thể không được phép ngủ đông. Chỉnh sửa hoặc tạo /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla để nó chứa phần sau: (nguồn)

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

Điều này đã được thử nghiệm trên buntuGnome 14.04 .

Lưu ý: Về cơ bản, đây giống như câu trả lời của qbi, nhưng được cập nhật để hoạt động cho các phiên bản Ubuntu mới hơn cũng như bao gồm cả ngủ đông.

187
Adam Paetznick

Dành cho buntu 12.04 LTSbuntu 13.04

Để có chế độ ngủ đông:

Sudo pm-hibernate

Để được tạm ngưng:

Sudo pm-suspend
31
rɑːdʒɑ

Bạn có thể sử dụng tệp /sys/power/state để làm điều này. Trước tiên hãy tìm hiểu những trạng thái được hỗ trợ:

[email protected]:_> cat /sys/power/state
standby mem disk

[email protected]:~> echo -n mem > /sys/power/state  # suspend to ram
[email protected]:~> echo -n disk > /sys/power/state  # suspend to disk

hoặc thông qua dbus:

# Tạm dừng dbus-send --session --dest = org.gnome.PowerManager\--type = method_call --print-reply --reply-timeout = 2000 \/org/gnome/PowerManager org.gnome.PowerManager.Suspend # Hibernate dbus-send --session --dest = org.gnome.PowerManager\--type = method_call --print-reply --reply-timeout = 2000 \/org/gnome/PowerManager org.gnome.PowerManager.Hibernate

Theo điều này mục trong launchpad giao diện trên đã bị xóa. Vì vậy, nó sẽ không hoạt động nữa trong Ubuntu.

22
qbi

Để tắt hệ thống (14.04) từ dòng lệnh (hoặc phím tắt), hãy sử dụng:

dbus-send --system --print-reply --dest="org.freedesktop.login1" /org/freedesktop/login1 org.freedesktop.login1.Manager.PowerOff boolean:true

Tôi đã tìm thấy điều này bằng cách chơi xung quanh với gdbus có thể liệt kê các giao diện có sẵn:

Để liệt kê các dịch vụ có sẵn trên xe buýt:

dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames

Để tìm các phương thức:

gdbus introspect --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --recurse
12
simonltwick

kể từ 15.04 systemD là hệ thống init tiêu chuẩn nên có một lệnh mới sẽ được sử dụng:

systemctl suspend
11
k1l

Câu trả lời dbus-send của Adam Paetznick không hoạt động như mục đích của tôi về sự sáng suốt; Máy đã thức dậy được mở khóa, mặc dù trình quản lý năng lượng gnome được thiết lập để khóa màn hình khi thức dậy. Tôi muốn màn hình bị khóa khi thức dậy và thấy rằng những điều sau đây thực hiện điều đó:

$ gnome-screensaver-command --lock && pmi action hibernate

Tôi tưởng tượng điều này không phụ thuộc vào cấu hình gnome, nhưng tôi đã không kiểm tra điều đó.

8
Aryeh Leib Taurog

Giao diện mới

Có thể hoạt động trong 15.10 Wily, và có thể là Utopic và Vivid.

dbus-send --print-reply --system                         \
    --dest=org.freedesktop.login1                        \
    /org/freedesktop/login1                              \
    org.freedesktop.login1.Manager.Suspend boolean:true

Thật hữu ích, điều này không yêu cầu Sudo, không giống như lệnh pm-suspend.

3
Gringo Suave

Đây là cách đặt máy từ xa ở chế độ chờ qua ssh:

[.___] Mật khẩu của 192.168.1.4: [.__.] [Sudo] mật khẩu cho x: [.___

/ sys/power/state hoạt động trong Ubuntu 13.10. pmi đưa ra lỗi Dbus.

1
user229115

Cập nhật cho những người, giống như tôi, vẫn hoạt động trên các hệ thống KDE/Ubuntu 14.04. Để khóa sử dụng qdbus và tạm ngưng sử dụng dbus. Lệnh đầy đủ:

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Để ngủ đông, tức là tạm dừng ổ cứng thay vì RAM, thay thế 'Tạm dừng' ở cuối lệnh bằng 'Hibernate'.

Để chỉ khóa màn hình mà không bị treo, xscreensaver-command -lock sẽ hoạt động, NẾU bạn chỉ gõ 1 dấu gạch ngang cho tùy chọn '-lock' và chỉ khi trình bảo vệ màn hình đang chạy. Trên thực tế không phải là một lệnh rất hữu ích. Sử dụng i3lock dễ dàng hơn, nhưng sau đó bạn sẽ không nhận được hộp thoại đăng nhập gọn gàng để hoạt động trở lại, như bạn sẽ làm khi sử dụng qdbus.

0
LinuxRev

Các công việc sau đây cho tôi vào ngày 16.04 (với máy tính để bàn Gnome):

gnome-screensaver-command --lock && compsleep

Tôi cũng đã cài đặt nó dưới dạng phím tắt tùy chỉnh thông qua bảng cài đặt Gnome dưới dạng các phím "Shift-Super-X".

0
christopherbalz

Cá nhân tôi đã thử nghiệm phương pháp pmi. Tuy nhiên, khi tôi thử điều này, tôi nhận được một thông báo lỗi: Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1. Tuy nhiên, có một cách giải quyết trong bình luận thứ of báo cáo lỗi này , có vẻ như đã hoạt động với tôi (Tôi đang sử dụng Ubuntu 13.03).

0
TSJNachos117