有什么区别
echo "mem" > /sys/power/state
和
pm-suspend
两者都可以使计算机进入睡眠模式。我想在系统从睡眠状态恢复时自动执行一个脚本。我编写了一个脚本并将其放在 /etc/pm/sleep.d 中。它仅在我使用 pm-suspend 命令并恢复系统时才有效。但是,如果我使用以下命令暂停系统,则它对恢复没有影响回显“mem”> /sys/power/state。我还注意到 pm-suspend 比回声“mem”...。
答案1
相识又有差别。
在我的 ubuntu 系统上,pm-suspend 最终执行相同的操作:
do_suspend() { echo -n "mem" >/sys/power/state; }
但是正如您所注意到的,pm-suspend 在进程管理调用周围包装了一大堆其他内容,例如日志记录、锁定、错误检查、调试和您正在使用的钩子。
vi /usr/sbin/pm-suspend
和
$ grep '()' "/usr/lib/pm-utils/pm-functions"
log()
profiling() { [ "$PM_PROFILE" = "true" ]; }
profile() {
profile() { shift; "$@"; }
add_before_hooks() {
add_module_help() {
before_hooks()
sleep_module_help()
update_parameters()
load_hook_blacklist()
load_hook_parameters()
hook_exit_status(){
hook_ok()
_run_hook() {
# log() changes the return value, so save it for later
run_hook() { profile "$1:" _run_hook "$@"; }
run_hook() { _run_hook "$@"; }
_run_hooks() {
run_hooks() { profile "$1 $2:" _run_hooks "$@"; }
run_hooks() { _run_hooks "$@"; }
init_logfile()
check_suspend() { [ -n "$SUSPEND_MODULE" ]; }
check_hibernate() { [ -n "$HIBERNATE_MODULE" ]; }
check_suspend_hybrid() { [ -n "$SUSPEND_HYBRID_MODULE" ]; }
check_suspend_pmu()
do_suspend_pmu()
do_suspend() { echo -n "mem" >/sys/power/state; }
do_suspend() { do_suspend_pmu; }
do_suspend() { echo -n "standby" >/sys/power/state; }
do_hibernate()
do_suspend_hybrid() {
对于更低的级别,请查看此处: https://stackoverflow.com/questions/5658170/how-ther-linux-kernel-process-the-write-to-sys-power-state