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


Câu trả lời:


312

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, systemctlcuộc gọi phải được sử dụng (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 ~/bin/suspendlối tắt / tập lệnh 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 Ubuntu, 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để làm việc trên netbook của tôi.


21
pm-đình chỉ và pm-hibernate hoạt động với tôi và nó dễ dàng. Yêu cầu sudo nhưng không sao. (Đã tìm thấy ý tưởng pmi trước đây nhưng cài đặt gói để sử dụng tạm ngưng cũng rất tệ ...)
user1034

1
Lưu ý rằng bạn phải apt-get install powermanagement-interfacechạy pmi.
nealmcb

1
Vào ngày 11.10, chỉ có pm- * hoạt động, cũng với giao diện
powermanagament

1
không hoạt động với Ubuntu 12.10 của tôi. sauapt-get install powermanagement-interface
đôi

1
phương pháp mới hiện đã bị hỏng, hãy xem unix.stackexchange.com/questions/153099/ triệt
ijk

188

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 hơn 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 ý kiến ​​trao đổi Suspendtrong dòng cuối cùng để Hibernatetạ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 ngủ đông ném Error org.freedesktop.UPower.GeneralError: not authorizedngườ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 UbuntuGnome 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.


15
Câu trả lời của bạn thực sự nên là đầu tiên. Đó là cách thức không phải là gói không cần cài đặt gốc để thực hiện. Như!
turbo

11
Tới Hibernate, bạn chỉ cần thay thế dòng cuối cùng bằngorg.freedesktop.UPower.Hibernate
Sheharyar

2
vào ngày 13.10 của tôi nó hoạt động. tuy nhiên, màn hình không bị khóa khi tiếp tục, mặc dù trong "Bảo mật và quyền riêng tư", "Yêu cầu mật khẩu của tôi khi thức dậy từ Đình chỉ" được kích hoạt.
andreas-h

3
Không làm việc cho tôi (Gnome 3.12, Ubuntu 14.04). Có vẻ như giao diện [UPower.Suspend] đã bị xóa, theo bug.launchpad.net/ubfox/+source/gnome-power-manager/+orms/iêu
Gui Ambros

4
Giao diện treo đã được chuyển sang logind; Askubfox.com/questions/652978
Khurshid Alam

58

Anh

Nếu bạn muốn máy tính tạm ngưng trong một giờ vì bạn muốn đi ngủ nghe đài phát thanh yêu thích của mình, hãy mở thiết bị đầu cuối và gõ:

sudo bash -c "sleep 1h; pm-suspend"

và máy tính của bạn sẽ ngủ trong 1 giờ. Khi bạn thức dậy, nó sẽ giữ hình ảnh mở và tất cả những thứ của bạn.

Bạn có thể thay thế 1hbằng những gì bạn muốn: hhàng giờ, mhàng phút, sgiây, dngày.

Chúc ngủ ngon!

Tiếng Pháp

Si vous voulez juste que Votere ord ordur se mette en veille dans une heure parce que vous voulez vous endormir en ecoutant Votere radio préférée, ouvrez Terminal et băngz:

sudo bash -c "sleep 1h; pm-suspend"

et Votere ord ordur s'endormira dans une heure. Quand vous vous réveillerez, il aura Consé en mémoire vos ứng dụng ouvertes.

Vous pouvez remplacer 1hpar ce que vous voulez: hpour les heures, mpour les phút, spour les secondes, dpour les jours.

Bonne nuit!

Đặc biệt

Si quieres đình chỉ tu computadora en una hora porque quieres ir a dormir escuchando tu estación de radio favita, tan solo abre el terminal y escribe:

sudo bash -c "sleep 1h; pm-suspend"

y tu computadora se quedará dormida en 1 hora. Cuando despiertes, allí habrán quedado abiertas tus imágenes y todas tus cosas.

Puedes reemplazar 1hpor lo que desees: hpara horas, mpara minutos, spara segundos, dpara días.

Buenas ồn ào!


Đó là trường hợp sử dụng của tôi, tôi đang tìm kiếm! AFIK pm- * có thể được chạy mà không có quyền siêu người dùng
ruX

31

Dành cho Ubuntu 12.04 LTSUbuntu 13.04

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

sudo pm-hibernate

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

sudo pm-suspend

"sudo pm-đình chỉ" không hoạt động trên mint 13 mate :(
rsjethani

Vâng tôi nghĩ rằng gói đó đã không được cài đặt. tìm kiếm các gói trong synap.
rdʒɑ

2
Hạn chế của phương pháp này là nếu bạn đang sử dụng GUI, pm-đình chỉ sẽ KHÔNG chặn phiên của bạn, điều này có thể không an toàn.
Raúl Salinas-Monteagudo

1
Nó cũng hoạt động trên Ubuntu 15.10.
Searene

1
hoạt động vào 14.04 lts
Vitaly Zdanevich

22

Bạn có thể sử dụng các tập tin /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ợ:

user@linux:_> cat /sys/power/state
standby mem disk

root@linux:~> echo -n mem > /sys/power/state  # suspend to ram
root@linux:~> 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 mục này trong launchpad , giao diện trên đã bị xóa. Vì vậy, nó sẽ không hoạt động nữa trong Ubuntu.


Ý tưởng đầu tiên mang lại cho tôi: "bash: echo: write error: Không hợp lệ" Ý tưởng Dbus cho đầu ra: "Error org.freedesktop.DBus.Error.Un UnknownMethod: Phương thức" Đình chỉ "với chữ ký" "trên giao diện" org.gnome.PowerManager " không tồn tại "
user1034

Tôi đã thêm một lời giải thích nhỏ cho mọi thứ /sys/power/state. Hơn nữa, phương thức dbus đã bị xóa khỏi Ubuntu nên nó sẽ không hoạt động nữa.
qbi

$ sudo echo -n mem > /sys/power/state-bash: /sys/power/state: Permission denied
Hubro

3
Điều này làm việc tuyệt vời. Đối với những người gặp vấn đề với phương pháp này khi sử dụng sudo, "pipe to file", còn gọi là ">" đang chạy trong trình bao hiện tại của bạn, vì vậy nó không nhận được đặc quyền siêu người dùng trong khi tiếng vang của bạn đã làm. Bạn sẽ cần sử dụng sudo -iđầu tiên hoặc đường ống để sudo teethích như vậy:echo mem | sudo tee /sys/power/state
RandomInsano

12

Để 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

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

Tôi đang sử dụng Xubfox 15.04. Lệnh systemctl suspendsẽ tạm dừng máy tính, nhưng nó không làm cho màn hình bị khóa, mặc dù tôi đã kiểm tra hộp kiểm "Khóa màn hình khi hệ thống chuyển sang chế độ ngủ" trong Cài đặt -> Trình quản lý nguồn -> Bảo mật. Bất cứ ai có ý tưởng tại sao?
Teemu Leisti

Tôi đã nâng cấp lên Xubfox 16.04. Lệnh systemctl suspendvẫn treo máy tính. Bây giờ, nó cũng làm cho màn hình bị khóa, nếu và chỉ khi hộp kiểm "Khóa màn hình khi hệ thống chuyển sang chế độ ngủ" trong Cài đặt -> Trình quản lý nguồn -> Bảo mật được chọn.
Teemu Leisti

8

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 đó.


Đẹp. Hoặc xscreensaver-command --locknhư trường hợp có thể.
phyzome

3

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ư pm-suspendlệnh.


XPS 13 9350 của tôi với Debian / Gnome gặp sự cố tạm dừng / ngủ đông khi đóng nắp. Sau khi chạy lệnh này (và tương đương với chế độ ngủ đông), nó đã thành công trong trạng thái treo (và ngủ đông) và bây giờ đóng và mở nắp hoạt động như mong đợi!
Victor Schröder

1

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

ssh -t 192.168.1.4 'sudo nohup &> / dev / null bash -c "(ngủ 1; echo -n mem> / sys / power / state) &"'
mật khẩu của x@192.168.1.4: 
[sudo] mật khẩu cho x: 
Kết nối với 192.168.1.4 đã đóng.

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


0

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ứ 3 của báo cáo lỗi này , dường như nó đã hoạt động với tôi (Tôi đang sử dụng Ubuntu 13.03).


Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
fossfreedom

0

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à đình chỉ 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 -locksẽ hoạt động, NẾU bạn chỉ gõ 1 dấu gạch nối 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 i3lockdễ 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 để quay lại hoạt động, như bạn sẽ làm khi sử dụng qdbus.


0

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".

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.