ฉันจะระงับ / จำศีลจากบรรทัดคำสั่งได้อย่างไร


357

ฉันจะระงับหรือจำศีลแล็ปท็อปของฉันโดยใช้บรรทัดคำสั่งโดยไม่ต้องติดตั้งซอฟต์แวร์เพิ่มเติมได้อย่างไร


2
สำหรับ Ubuntu 16.04 ดูคำถามนี้: askubuntu.com/questions/777178/suspend-command-in-ubuntu-16-04และคำตอบของมันsystemctl suspend
CJlano

คำตอบ:


312

ตามเนื้อผ้าอูบุนตูสนับสนุนวิธีการทื่อและไฮเบอร์เนตอย่างเป็นธรรม จะไม่รวมเข้ากับแอพอื่น ๆ ได้ดีและบางครั้งก็ไม่สามารถใช้งานได้กับเครื่องบางเครื่อง วิธีการใหม่ไม่จำเป็นต้องรูทและแจ้งให้แอปพลิเคชันทั้งหมดฟังเหตุการณ์พลังงาน

วิธีการของ Systemd

เริ่มต้นด้วย Ubuntu 16.04 systemctlจะต้องใช้การโทร (ดูคำสั่งระงับใน Ubuntu 16.04 )

systemctl suspend

และ

systemctl hibernate

วิธีการใหม่

ดูคำตอบที่นี่ในหน้านี้จากอดัม Paetznick เกี่ยวกับการใช้ dbus เป็นการดีที่คุณจะสร้าง~/bin/suspendทางลัด / สคริปต์ที่ทำให้การใช้งานของการกระทำนี้ง่าย

สำหรับการใช้งานผ่าน ssh คุณควรแก้ไขกฎ policykit ที่อธิบายโดย Peter V. Mørch

วิธีเก่า

ตามฟอรัม Ubuntuคุณสามารถใช้คำสั่งต่อไปนี้:

pmi action suspend

และ

pmi action hibernate

สิ่งนี้ต้องการให้คุณติดตั้งแพ็คเกจ powermanagement-interface (ไม่ผ่านการทดสอบ)

sudo apt-get install powermanagement-interface

ฉันได้พบคำสั่งsudo pm-suspendและsudo pm-hibernateทำงานบนเน็ตบุ๊กของฉันด้วย


21
pm-suspend และ pm-hibernate ใช้ได้กับฉันแล้วมันก็ง่าย ต้องใช้ sudo แต่ก็ไม่เป็นไร (พบแนวคิดของ pmi มาก่อน แต่การติดตั้งแพคเกจเพื่อใช้ suspend นั้นไม่ดี ... )
user1034

1
โปรดทราบว่าคุณต้องapt-get install powermanagement-interfaceเรียกใช้ pmi
nealmcb

1
ในวันที่ 11.10 น. เท่านั้น - ทำงานได้, พร้อมเพิ่มอินเทอร์เฟซ powermanagament
Omegafil

1
ไม่ทำงานกับอูบุนตู 12.10 ของฉัน หลังจากapt-get install powermanagement-interface
somethis

1
วิธีการใหม่ตอนนี้ใช้งานไม่ได้ดูunix.stackexchange.com/questions/153099/…
ijk

188

วิธีที่เป็นมิตรกับ gnome คือการใช้ dbus

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

มีข้อดีสองประการสำหรับคำสั่งpm-suspendนี้

  1. มันจะล็อคหน้าจอของคุณ (เมื่อดำเนินการต่อ) หากคุณมีตัวเลือกที่เลือกในคำพังเพย

  2. ไม่จำเป็นต้องใช้สิทธิ์รูทดังนั้นจึงง่ายต่อการเพิ่มเป็นคีย์บอร์ดช็อตคัต

ดังที่ได้กล่าวไว้ในความคิดเห็นที่แลกเปลี่ยนSuspendในบรรทัดสุดท้ายเพื่อHibernateสร้างคำสั่งจำศีล:

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

หากไฮเบอร์เนตส่งError org.freedesktop.UPower.GeneralError: not authorizedผู้ใช้ของคุณอาจไม่ได้รับอนุญาตให้ไฮเบอร์เนต แก้ไขหรือสร้าง/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklaเพื่อให้มีส่วนต่อไปนี้: (ที่มา)

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

นี้ได้รับการทดสอบUbuntuGnome 14.04

หมายเหตุ: โดยทั่วไปจะเหมือนกับคำตอบของ qbi แต่ได้รับการปรับปรุงให้ใช้กับ Ubuntu รุ่นใหม่กว่ารวมถึงการจำศีล


15
คำตอบของคุณควรเป็นอันดับแรก มันไม่ใช่วิธีการที่จะติดตั้งแพ็คเกจ gnome ที่ไม่รูท ชอบ!
เทอร์โบ

11
เมื่อต้องการHibernateคุณสามารถแทนที่บรรทัดสุดท้ายด้วยorg.freedesktop.UPower.Hibernate
Sheharyar

2
ใน 13.10 ของฉันมันใช้งานได้ แต่หน้าจอจะไม่ล็อคเมื่อกลับมาถึงแม้ใน "การรักษาความปลอดภัยและความเป็นส่วนตัว", "ต้องใช้รหัสผ่านของฉันเมื่อตื่นจากการระงับ" ถูกเปิดใช้งาน
andreas-h

3
ไม่ได้ผลสำหรับฉัน (Gnome 3.12, Ubuntu 14.04) ดูเหมือนว่าอินเทอร์เฟซ [UPower.Suspend] ถูกลบไปแล้วตามbugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/…
Gui Ambros

4
อินเทอร์เฟซที่หยุดชั่วคราวถูกย้ายไปที่ logind; askubuntu.com/questions/652978
Khurshid Alam

58

อังกฤษ

หากคุณต้องการให้คอมพิวเตอร์ของคุณระงับในหนึ่งชั่วโมงเพราะคุณต้องการเข้านอนฟังสถานีวิทยุที่คุณชื่นชอบเปิดเทอร์มินัลและประเภท:

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

และคอมพิวเตอร์ของคุณจะหลับไปใน 1 ชั่วโมง เมื่อคุณตื่นขึ้นมามันจะเก็บภาพที่เปิดอยู่และทุกสิ่งของคุณไว้

คุณสามารถแทนที่1hด้วยสิ่งที่คุณต้องการ: hชั่วโมงชั่วโมงmนาทีsวินาทีวินาทีdวัน

ราตรีสวัสดิ์!

français

หากคุณต้องการเพียงแค่เพิ่มจำนวนผู้เข้าชมและลงทะเบียนเข้าสู่ระบบโปรดเข้าสู่ระบบเพื่อดูความเห็นส่วนตัวของคุณเกี่ยวกับวิทยุ, สถานีปลายทางและเทป:

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

et votre ordinateur s'endormira จะรักษาให้หาย คลิกเพื่อดูภาพอื่น ๆ , ในการอนุรักษ์และการประยุกต์ใช้งานของคุณกลับไปด้านบน

Vou pouvez remplacer 1hpar ce que vous voulez: hเทเลเฮลล์, mเทเลส์นาที, sเทเลวินาที, dเทเล jours

Bonne nuit!

español

หากคุณกำลังมองหาคอมพิวเตอร์ของคุณในสถานที่ที่ปลอดภัยและคุ้มค่าที่จะช่วยให้คุณเพลิดเพลินไปกับรายการวิทยุที่คุณชื่นชอบ:

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

y tu computadora se quedará dormida en 1 hora. เมื่อวันที่, ทุกอย่างเป็นเรื่องง่ายที่จะพูดคุยเกี่ยวกับเรื่องนี้และจากนั้น.

Puedes reemplazar 1hpor que ดูเถิด desees: hชั่วโมงพาราmminutos พาราsSegundos พาราdพาราdías

¡ Buenas noches!


นั่นคือกรณีการใช้งานของฉันฉันกำลังมองหา! AFIK pm- * สามารถทำงานได้โดยไม่ต้องขออนุญาต superuser
ruX

31

สำหรับUbuntu 12.04 LTS และUbuntu 13.04

วิธีรับไฮเบอร์เนต:

sudo pm-hibernate

ในการรับ Suspend:

sudo pm-suspend

"sudo pm-suspend" ไม่ทำงานกับมิ้นต์ 13 คู่ :(
rsjethani

ใช่ฉันคิดว่าไม่ได้ติดตั้งแพ็คเกจ มองหาแพ็คเกจเหล่านั้นแบบซินแนปติค
rɑːdʒɑ

2
ข้อเสียของวิธีนี้คือถ้าคุณใช้ GUI, pm-suspend จะไม่บล็อกเซสชันของคุณซึ่งอาจไม่ปลอดภัย
Raúl Salinas-Monteagudo

1
มันใช้งานได้กับ Ubuntu 15.10 ด้วย
เซียร์รีน

1
ใช้งานได้ 14.04 lts
Vitaly Zdanevich

22

คุณสามารถใช้ไฟล์/sys/power/stateนี้ได้ ขั้นแรกให้ค้นหาว่าสหรัฐฯรองรับอะไร:

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

หรือผ่าน dbus:

# ระงับ 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

ตามรายการนี้ใน launchpadอินเทอร์เฟซข้างต้นถูกลบ ดังนั้นมันจะไม่ทำงานอีกต่อไปใน Ubuntu


แนวคิดแรกให้ฉัน: "bash: echo: write error: อาร์กิวเมนต์ไม่ถูกต้อง" แนวคิด Dbus ให้ผลลัพธ์: "Error org.freedesktop.DBus.Error.UnknownMethod: วิธี" Suspend "พร้อมลายเซ็น" "บนอินเตอร์เฟส" org.gnome.PowerManager " ไม่มีอยู่ "
user1034

ฉันเพิ่มคำอธิบายเล็ก ๆ ลงใน/sys/power/stateสิ่ง - นอกจากนี้วิธีการ dbus ถูกลบออกจาก Ubuntu ดังนั้นมันจะไม่ทำงานอีกต่อไป
qbi

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

3
มันใช้งานได้ดี สำหรับผู้ที่มีปัญหากับวิธีการนี้เมื่อใช้ sudo "pip to file", aka ">" กำลังทำงานในเชลล์ปัจจุบันของคุณดังนั้นจึงไม่ได้รับสิทธิพิเศษจากผู้ใช้ในขณะที่เสียงก้องของคุณทำ คุณจะต้องใช้sudo -iก่อนหรือsudo teeecho mem | sudo tee /sys/power/state
ไพพ์

12

ในการปิดระบบ (14.04) จากบรรทัดคำสั่ง (หรือแป้นพิมพ์ลัด) ให้ใช้:

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

ฉันพบสิ่งนี้โดยการเล่นกับ gdbus ซึ่งสามารถแสดงรายการอินเตอร์เฟสที่มี:

ในการแสดงรายการบริการที่มีบนรถบัส:

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

เพื่อค้นหาวิธีการ:

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

12

เนื่องจาก15.04 systemD เป็นระบบเริ่มต้นมาตรฐานดังนั้นจึงมีคำสั่งใหม่ที่จะใช้:

systemctl suspend

ฉันใช้ Xubuntu 15.04 คำสั่งsystemctl suspendหยุดการทำงานของคอมพิวเตอร์ แต่ไม่ทำให้หน้าจอถูกล็อคแม้ว่าฉันจะตรวจสอบช่องทำเครื่องหมาย "ล็อคหน้าจอเมื่อระบบเข้าสู่โหมดสลีป" ในการตั้งค่า -> ตัวจัดการพลังงาน -> ความปลอดภัย ใครมีความคิดใด ๆ ทำไม?
Teemu Leisti

ฉันอัพเกรดเป็น Xubuntu 16.04 คำสั่งsystemctl suspendยังคงระงับคอมพิวเตอร์ ตอนนี้ก็ทำให้หน้าจอถูกล็อคถ้าหาก "ล็อคหน้าจอเมื่อระบบเข้าสู่โหมดสลีป" ในการตั้งค่า -> ตัวจัดการพลังงาน -> ความปลอดภัยจะถูกตรวจสอบ
Teemu Leisti

8

คำตอบการส่งแบบ dbus ของ Adam Adam Paetznick ไม่ได้ผลตามที่ฉันต้องการ เครื่องตื่นขึ้นมาปลดล็อคแม้ว่า gnome-power-manager จะถูกตั้งค่าให้ล็อคหน้าจอเมื่อตื่นขึ้น ฉันต้องการให้หน้าจอล็อกเมื่อตื่นขึ้นและพบว่าต่อไปนี้เป็นเช่นนั้น:

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

ฉันคิดว่าสิ่งนี้ไม่ได้ขึ้นอยู่กับการกำหนดค่าของ GNOME แต่ฉันยังไม่ได้ทดสอบ


ดี หรือxscreensaver-command --lockแล้วแต่กรณี
phyzome

3

อินเทอร์เฟซใหม่

... ซึ่งใช้งานได้ใน 15.10 เจ้าเล่ห์และอาจเป็น Utopic และ Vivid

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

มีประโยชน์สิ่งนี้ไม่จำเป็นต้องใช้ sudo ต่างจากpm-suspendคำสั่ง


XPS 13 9350 ของฉันกับ Debian / Gnome แก้ไขปัญหาการระงับชั่วคราว / ไฮเบอร์เนตเมื่อปิดฝา หลังจากเรียกใช้คำสั่งนี้ (และเทียบเท่าสำหรับการจำศีล) มันก็ประสบความสำเร็จในการระงับ (และไฮเบอร์เนต) และตอนนี้ปิดและเปิดฝาทำงานตามที่คาดไว้!
Victor Schröder

1

นี่คือวิธีการวางเครื่องระยะไกลในโหมดสแตนด์บายมากกว่า ssh:

ssh -t 192.168.1.4 'sudo nohup &> / dev / null bash -c "(sleep 1; echo -n mem> / sys / power / state) &"'
รหัสผ่านของ x@192.168.1.4: 
[sudo] รหัสผ่านสำหรับ x: 
ปิดการเชื่อมต่อ 192.168.1.4 แล้ว

/ sys / power / state ทำงานใน Ubuntu 13.10 pmi ให้ข้อผิดพลาด Dbus


0

โดยส่วนตัวฉันได้ทำการทดลองด้วยวิธี pmi แล้ว Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1แต่เมื่อฉันพยายามนี้ผมได้รับข้อความแสดงข้อผิดพลาด: อย่างไรก็ตามมีวิธีแก้ปัญหาในการแสดงความคิดเห็นที่ 3ของรายงานข้อผิดพลาดนี้ซึ่งดูเหมือนว่าจะได้ผลสำหรับฉัน (ฉันใช้ Ubuntu 13.03)


ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
fossfreedom

0

อัปเดตสำหรับผู้ที่ชอบฉันยังคงทำงานบนระบบ KDE / Ubuntu 14.04 การล็อคการใช้งานและการระงับการใช้qdbus dbusคำสั่งแบบเต็ม:

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

ในการไฮเบอร์เนตเช่นพักไว้ในฮาร์ดดิสก์แทน RAM ให้แทนที่ 'หยุดชั่วคราว' เมื่อสิ้นสุดคำสั่งด้วย 'Hibernate'

หากต้องการล็อกหน้าจอโดยไม่หยุดxscreensaver-command -lockทำงานจะทำงานหากคุณพิมพ์ยัติภังค์เพียง 1 ตัวสำหรับตัวเลือก '-lock' และเฉพาะเมื่อตัวรักษาหน้าจอทำงานอยู่ จริงๆแล้วไม่ใช่คำสั่งที่มีประโยชน์มาก ใช้i3lockง่ายขึ้น qdbusแต่แล้วคุณจะไม่ได้รับการโต้ตอบการเข้าสู่ระบบเรียบร้อยที่จะได้รับกลับไปทำงานตามที่คุณจะได้เมื่อใช้


0

การทำงานต่อไปนี้สำหรับฉันใน 16.04 (พร้อมเดสก์ท็อป Gnome):

gnome-screensaver-command --lock && compsleep

ฉันได้ติดตั้งมันเป็นแป้นพิมพ์ลัดที่กำหนดเองผ่านแผงการตั้งค่า Gnome เป็นปุ่ม "Shift-Super-X"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.