Bagaimana saya bisa menangguhkan / hibernasi dari baris perintah?

Jawaban:

312

Secara tradisional ubuntu mendukung metode penangguhan dan hibernasi yang cukup tumpul. Tidak akan terintegrasi dengan baik dengan aplikasi lain dan kadang-kadang bahkan tidak berfungsi pada beberapa mesin. Metode baru tidak memerlukan root dan memberi tahu semua aplikasi mendengarkan peristiwa daya.

Metode Systemd

Mulai dengan Ubuntu 16.04, systemctlpanggilan harus digunakan (Lihat perintah Menunda di Ubuntu 16.04 )

systemctl suspend

dan

systemctl hibernate

Metode Baru

Lihat jawabannya di sini di halaman ini dari Adam Paetznick tentang penggunaan dbus . Idealnya Anda akan membuat ~/bin/suspendpintasan / skrip yang membuat penggunaan tindakan ini mudah.

Untuk menggunakan lebih dari ssh, Anda harus memodifikasi aturan policykit seperti yang diuraikan oleh Peter V. Mørch

Metode lama

Menurut Forum Ubuntu Anda dapat menggunakan perintah berikut:

pmi action suspend

dan

pmi action hibernate

Ini mengharuskan Anda menginstal paket antarmuka-manajemen-daya (tidak diuji).

sudo apt-get install powermanagement-interface

Saya juga telah menemukan perintah sudo pm-suspenddan sudo pm-hibernatebekerja di netbook saya.

txwikinger
sumber
21
pm-suspend dan pm-hibernate bekerja untuk saya dan itu mudah. Membutuhkan sudo tapi tidak apa-apa. (Ditemukan ide pmi sebelumnya tetapi menginstal paket untuk menggunakan menangguhkan juga buruk ...)
user1034
1
Perhatikan bahwa Anda harus apt-get install powermanagement-interfacemenjalankan pmi.
nealmcb
1
Pada 11.10 hanya pm- * berfungsi, juga dengan powermanagament-interface ditambahkan
Omegafil
1
tidak bekerja dengan ubuntu 12.10 saya. setelahapt-get install powermanagement-interface
sekitar
1
metode baru sekarang rusak lihat unix.stackexchange.com/questions/153099/...
ijk
188

Cara ramah-gnome adalah menggunakan dbus.

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

Ada dua keuntungan dari perintah ini pm-suspend.

  1. Ini akan mengunci layar Anda (setelah resume) jika Anda memiliki opsi yang dipilih di gnome.

  2. Misalnya, tidak memerlukan hak akses root, jadi mudah untuk menambahkannya sebagai pintasan keyboard.

Seperti disebutkan dalam komentar yang bertukar Suspenddi baris terakhir untuk Hibernatemembuat perintah hibernate:

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

Jika hibernasi melempar, Error org.freedesktop.UPower.GeneralError: not authorizedpengguna Anda mungkin tidak diizinkan untuk hibernasi. Edit atau buat /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklasehingga mengandung bagian berikut: (sumber)

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

Ini diuji pada UbuntuGnome 14.04 .

Catatan: Ini pada dasarnya sama dengan jawaban qbi, tetapi diperbarui agar berfungsi untuk versi Ubuntu yang lebih baru dan juga termasuk hibernate.

Adam Paetznick
sumber
15
Jawaban Anda harus menjadi yang pertama. Ini adalah cara gnome no-package-to-be-install yang non-root untuk melakukannya. Suka!
turbo
11
Untuk Hibernate, Anda cukup mengganti baris terakhir denganorg.freedesktop.UPower.Hibernate
Sheharyar
2
pada 13.10 saya itu berhasil. Namun, layar tidak terkunci pada melanjutkan, meskipun dalam "Keamanan dan Privasi", "Membutuhkan kata sandi ketika bangun dari Suspend" yang diaktifkan.
andreas-h
3
Tidak bekerja untuk saya (Gnome 3.12, Ubuntu 14.04). Tampaknya antarmuka [UPower.Suspend] telah dihapus, menurut bugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/…
Gui Ambros
4
Antarmuka menangguhkan dipindahkan ke logind; askubuntu.com/questions/652978
Khurshid Alam
58

Inggris

Jika Anda ingin komputer Anda ditangguhkan dalam satu jam karena Anda ingin tidur mendengarkan stasiun radio favorit Anda, buka terminal dan ketik:

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

dan komputer Anda akan tertidur dalam 1 jam. Ketika Anda bangun, itu akan membuat gambar terbuka Anda dan semua barang Anda.

Anda dapat mengganti 1hdengan apa yang Anda inginkan: hselama berjam-jam, mselama beberapa menit, sselama beberapa detik, dselama beberapa hari.

Selamat malam!

Français

Setelah itu, pilih hanya satu dari semua pemilih yang ada di bawah ini dan klik di sini untuk informasi lebih lanjut tentang pemilih suara radio, radio, terminal Terminal et tapez:

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

dan votre ordinateur s'endormira dans une heure. Dengan cepat dan cepat, gunakan aplikasi hemat dan aktifkan aplikasi ini.

Anda akan menemukan remplacer 1hpar ce que vous voulez: htuangkan file, tuangkan file m, stuangkan file, dtuangkan file.

Bonne nuit!

Español

Jika ada suspender dari komputer Anda dan kemudian simpan dari asrama Anda ke stasiun radio, silakan pilih sendiri di terminal y escribe:

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

Anda dapat menggunakan salah satu dormora en 1 hora. Di bawah rata-rata, semua ini tersedia untuk Anda untuk melihat lebih baik dan lebih mudah.

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

¡Buenas noches!

greg
sumber
Itu kasus penggunaan saya yang saya cari! AFIK pm- * dapat dijalankan tanpa izin pengguna
super
31

Untuk Ubuntu 12,04 LTS dan Ubuntu 13,04

Untuk mendapatkan Hibernasi:

sudo pm-hibernate

Untuk mendapatkan Penangguhan:

sudo pm-suspend
rɑːdʒɑ
sumber
"sudo pm-suspend" tidak bekerja pada mint 13 mate :(
rsjethani
Ya saya pikir paket itu tidak diinstal. cari paket-paket itu secara sinaptik.
rɑːdʒɑ
2
Kelemahan dari metode ini adalah bahwa jika Anda menggunakan GUI, pm-suspend TIDAK akan memblokir sesi Anda, yang bisa jadi tidak aman.
Raúl Salinas-Monteagudo
1
Ini berfungsi di ubuntu 15.10, juga.
Searene
1
bekerja pada 14,04 lts
Vitaly Zdanevich
22

Anda dapat menggunakan file /sys/power/stateuntuk melakukan ini. Pertama cari tahu status apa yang didukung:

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

atau via dbus:

# Tangguhkan 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

Menurut entri ini di launchpad antarmuka di atas telah dihapus. Jadi tidak akan berfungsi lagi di Ubuntu.

qbi
sumber
Gagasan pertama memberi saya: "bash: echo: write error: Argumen tidak valid" Gagasan Dbus memberikan output: "Kesalahan org.freedesktop.DBus.Error.Urk tidak diketahuiMetode: Metode" Tangguhkan "dengan tanda tangan" "pada antarmuka" org.gnome.PowerManager " tidak ada "
user1034
Saya menambahkan penjelasan kecil ke- /sys/power/statesesuatu. Selanjutnya metode dbus telah dihapus dari Ubuntu sehingga tidak akan berfungsi lagi.
qbi
$ sudo echo -n mem > /sys/power/state-bash: /sys/power/state: Permission denied
Hubro
3
Ini sangat bagus. Untuk orang-orang yang mengalami masalah dengan metode ini saat menggunakan sudo, "pipe to file", alias ">" sedang berjalan di shell Anda saat ini, sehingga tidak mendapatkan hak pengguna super sementara gema Anda melakukannya. Anda harus menggunakan sudo -idahulu, atau pipa untuk sudo teemenyukainya:echo mem | sudo tee /sys/power/state
RandomInsano
12

Untuk mematikan sistem (14,04) dari baris perintah (atau pintasan keyboard) gunakan:

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

Saya menemukan ini dengan bermain-main dengan gdbus yang dapat membuat daftar antarmuka yang tersedia:

Untuk daftar layanan yang tersedia di bus:

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

Untuk menemukan metode:

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

sejak 15.04 systemD adalah sistem init standar sehingga ada perintah baru untuk digunakan:

systemctl suspend
k1l
sumber
Saya menggunakan Xubuntu 15.04. Perintah systemctl suspendmemang menunda komputer, tetapi tidak menyebabkan layar terkunci, meskipun saya telah memeriksa "Kunci layar ketika sistem akan tidur" kotak centang di Pengaturan -> Power Manager -> Keamanan. Adakah yang tahu mengapa?
Teemu Leisti
Saya telah meningkatkan ke Xubuntu 16.04. Perintah systemctl suspendmasih menunda komputer. Sekarang, ini juga menyebabkan layar terkunci, jika dan hanya jika kotak centang "Kunci layar ketika sistem akan tidur" di Pengaturan -> Power Manager -> Keamanan dicentang.
Teemu Leisti
8

Jawaban dbus-send Adam Paetznick tidak bekerja seperti yang dimaksudkan untuk saya dengan jelas; mesin bangun tidak terkunci, meskipun gnome-power-manager diatur untuk mengunci layar saat bangun. Saya ingin layar dikunci saat bangun, dan menemukan bahwa yang berikut ini melakukan itu:

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

Saya membayangkan ini tidak tergantung pada konfigurasi gnome, tapi saya belum mengujinya.

Aryeh Leib Taurog
sumber
Bagus. Atau xscreensaver-command --lockseperti apa adanya.
phyzome
3

Antarmuka baru

... yang bekerja di 15.10 Wily, dan mungkin Utopic dan Vivid.

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

Bermanfaat ini tidak memerlukan sudo, tidak seperti pm-suspendperintah.

Gringo Suave
sumber
XPS 13 9350 saya dengan Debian / Gnome mengalami masalah menangguhkan / hibernasi saat menutup penutup. Setelah menjalankan perintah ini (dan setara dengan hibernasi), ia berhasil masuk ke suspensi (dan hibernasi) dan sekarang menutup dan membuka tutup berfungsi seperti yang diharapkan!
Victor Schröder
1

Inilah cara menempatkan mesin jarak jauh dalam keadaan siaga di atas ssh:

ssh -t 192.168.1.4 'sudo nohup &> / dev / null bash -c "(sleep 1; echo -n mem> / sys / power / state) &"'
kata sandi [email protected]: 
[sudo] kata sandi untuk x: 
Koneksi ke 192.168.1.4 ditutup.

/ sys / power / state berfungsi di Ubuntu 13.10. pmi memberikan kesalahan Dbus.

pengguna229115
sumber
0

Secara pribadi, saya telah bereksperimen dengan metode pmi. Namun, ketika saya mencoba ini, saya mendapat pesan kesalahan: Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1. Namun, ada solusi di komentar ke 3 dari laporan bug ini , yang sepertinya berhasil bagi saya (saya menggunakan Ubuntu 13.03).

TSJNachos117
sumber
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
fossfreedom
0

Pembaruan untuk mereka yang, seperti saya, masih bekerja di sistem KDE / Ubuntu 14.04. Untuk mengunci penggunaan qdbus, dan untuk menangguhkan penggunaan dbus. Perintah penuh:

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

Untuk hibernasi, yaitu menangguhkan ke harddisk alih-alih RAM, ganti 'Tangguhkan' di akhir perintah dengan 'Hibernate'.

Untuk hanya mengunci layar tanpa penangguhan, xscreensaver-command -lockakan berfungsi, JIKA Anda mengetik hanya 1 tanda hubung untuk opsi '-lock', dan hanya jika screensaver sedang berjalan. Sebenarnya bukan perintah yang sangat berguna. Menggunakan i3locklebih mudah, tetapi kemudian Anda tidak akan mendapatkan dialog login yang rapi untuk kembali bekerja, seperti yang akan Anda lakukan saat menggunakan qdbus.

LinuxRev
sumber
0

Berikut ini berfungsi untuk saya pada 16.04 (dengan desktop Gnome):

gnome-screensaver-command --lock && compsleep

Saya juga telah menginstalnya sebagai pintasan keyboard khusus melalui panel pengaturan Gnome sebagai tombol "Shift-Super-X".

christopherbalz
sumber