linux下休眠/待機命令
2012-04-20 | 閱:627 轉:0 | 分享
linux下休眠/待機命令
分類: linux 2011-03-07 10:21 2430人閱讀 評論(2) 收藏 舉報
if you
# cat /sys/power/state
mem disk
you can
echo “mem” > /sys/power/state 這相當於待機
echo “disk” > /sys/power/state 這相當於休眠
from http://linux.chinaunix.net/bbs/viewthread.php?tid=1057578
命令行中執行如下:
[root@fsc feng]# file /sys/power/state
/sys/power/state: ASCII text
[root@fsc feng]# cat /sys/power/state
standby mem disk
[root@fsc feng]# echo “mem”>/sys/power/state
/sys/power/state是個文本文檔,一個”mem”的導向就能使系統掛起到內存(待機)或硬盤(休眠),實在太神奇了,一定要深入學習瞭解一下其中原因!
—————————————–
關於Linux操作系統睡眠和休眠
from http://www.xxlinux.com/linux/article/accidence/technique/20080303/14073.html
在作之前,先檢查一下你的內核能支持哪些方式:
# cat /sys/power/state
standby disk
1. 睡眠 (sleep)
睡眠可能有兩種方式:mem和standby,這兩種方式都是suspend to RAM,簡稱STR,只是standby耗電更多一些,返回到正常工作方式時間更短一些而已。
只需要
# echo standby > /sys/power/state
就可以了。
2. 休眠 (hibernation)
休眠也有兩種方式:shutdown和platform。shutdown是通常的方式,比較可靠一些。如果你的系統上ACPI支持非常好,那就有機會支持platform方式。激活的方式稍有不同:
# echo platform > /sys/power/disk; echo disk > /sys/power/state
or
# echo shutdown > /sys/power/disk; echo disk > /sys/power/state
注意休眠有一個前提,就是在系統啓動時需要指定resume設備,也就是休眠的鏡像需要保存的分區。一般都用swap分區來做。
指定方式是:
kernel /boot/vmlinuz root=/dev/sda1 resume=/dev/sda2 vga=0×314 …
這樣在系統啓動時,內核會檢查resume中的內容,如果存在上次休眠的鏡像,那內核便會將鏡像讀入內存,恢復正常工作狀態。
—————————————-
Linux休眠和掛起(2008新版)
from http://blog.chinaunix.net/u/20515/showart_637851.html
Linux2.6內核已經有了非常多的變化,配置也要相應的改變
The only thing that not changes is Change:)
系統要求:
配置編譯內核: kernel2.6.22,2.6.24適用,最新內核未作測試
所需上層軟件: hibernate,hal,gnome-power-manager
測試環境:
系統: Debian lenny/sid
桌面:gnome2.22
機器:Thinkpad r40
操作細節:
1. 必需的內核選項:
Power Management support :
Suspend to Ram and Standby
Hibernate
()Default resume partition
(如果有多個 swap 交換區,需要設定默認使用的swap。用 fdisk -l 確定)
ACPI Support
Future power /sys interface
AC adapter
Battery
Button
Fan
Processor
Thermal zone
Device driver
Block devices
Ram Disk support
編譯時一定要注意:使用initrd引導內核
2. 命令行工具hibernate
安裝 hibernate
sudo aptitude install hibernate
配置hiberante
sudo dpkg-reconfigure hibernate
主要是休眠喚醒密碼。
sudo hibernate-disk // sleep ,系統內存映象將寫入 swap 區後關機
sudo hibernate-ram // suspend ,就是掛起。
3.圖形界面下的工具
環境:gnome2.22
所需上層軟件:hal,gnome-power-manager
sudo aptitude install gnome-power-manager
將電源管理加到系統任務欄Panel。
到這裏root用戶已經可以使用鼠標實現掛起和休眠了
普通用戶使用休眠的關鍵:增加權限
最簡單安全的方法就是加入管理休眠的組group,他們是haldaemon,powerdev。
注意,haldaemon可能在你的機器上是hal,主要是hal版本新舊的原因。
加入以上兩個group,就可以很方便的使用電源管理了。
小結:
*linux 下suspend和hibernate模式可以隨意使用,不需要額外的配置,較爲方便。 而windows xp 只能是 sleep 模式,或者 suspend 模式,二者切換需要更新設置。
*linux裏涉及具體硬件的驅動太多,非常希望有一天它們能從內核裏抽象出來,放到Userspace裏。
待機與休眠的區別,待機(Suspend)是掛起到內存,關機後需要保持對內存供電,不能完全關閉電源,但是這種方式重啓動的速度最快。休眠(Hibernate)是掛起到硬盤,可以完全關閉電源。
如果是在用GNOME,在GNOME中, 打開 GNOME Terminal,輸入 gnome- 後 TAB 自動補全,果然發現一個命令:gnome-power-cmd,就是它了。
待機:$ gnome-power-cmd suspend
休眠:$ gnome-power-cmd hibernate
Linux實現待機和休眠
EVOC BIOS默認值是將ACPI打開APM關閉,測試時只針對ACPI兩種模式(sleep和hibernation)進行測試即可;
1. (sleep睡眠模式)即待機模式
以root用戶名登陸當前系統
1.1 查看當前內核能支持哪些睡眠模式:
# cat /sys/power/state
mem disk (內核只支持兩種睡眠模式)
1.2 鍵入命令:
# echo "mem" > /sys/power/state
1.3
按主板power鍵恢復(喚醒)至之前畫面
2. (hibernation休眠)
2.1 休眠默認支持兩種方式:shutdown和platform
2.4內核使用shutdown
2.6內核使用platform
2.2 休眠需指定resume設備,一般都用swap分區來做。
指定方式更改grub啓動給內核傳遞喚醒參數是:
#vi /etc/grub/grub.conf
grub配置:
# grub.conf generated by anaconda
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,4)
# kernel /boot/vmlinuz-version ro root=/dev/hda5
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,4)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (FC6-hibernation)
root (hd0,4)
kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-1.2798.fc6.img
將kernel項更改爲:
kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/ rhgb quiet resume=/dev/hda6
保存,退出,重啓系統再以root用戶登錄
2.3 鍵入命令:
# echo platform > /sys/power/disk; echo disk > /sys/power/state
or # echo shutdown > /sys/power/disk; echo disk > /sys/power/state
進入休眠狀態10秒後,按power鍵進行喚醒。
參考資料:
http://www.linuxidc.com/Linux/2008-09/16074.htm
http://blog.csdn.net/hshl1214/article/details/6228