Diferença entre suspender para “mem” e pm-suspender

3

Qual é a diferença entre

echo "mem" > /sys/power/state

e

pm-suspend

Ambos podem colocar o computador no modo de suspensão. Eu quero executar um script automaticamente quando o sistema sair do modo de suspensão. Eu escrevi um script e coloquei em /etc/pm/sleep.d. Ele funciona somente quando eu uso o comando pm-suspend e retome o sistema de volta. No entanto, não tem efeito no currículo se eu suspender o sistema com echo "mem" > / sys / power / state . Também notei que pm-suspend demora um pouco mais do que echo "mem" ... .

    
por user846400 17.02.2012 / 14:38

1 resposta

2

O mesmo, mas diferente.

No meu sistema do Ubuntu, o pm-suspend acaba fazendo o mesmo:

do_suspend() { echo -n "mem" >/sys/power/state; } 

Mas, como você observou, o pm-suspend envolve um monte de outras coisas em torno da chamada para o gerenciamento do processo, como registro, bloqueio, verificação de erros, depuração e os ganchos que você está usando.

vi /usr/sbin/pm-suspend

e

$ 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() {

para níveis ainda mais baixos, confira aqui: link

    
por 23.06.2012 / 00:55