Różnica między zawieszeniem na „mem” a pm-suspend

3

Jaka jest różnica pomiędzy

echo "mem" > /sys/power/state

i

pm-suspend

Oba mogą przełączyć komputer w tryb uśpienia. Chcę wykonać skrypt automatycznie po wznowieniu działania systemu ze stanu uśpienia. Napisałem skrypt i umieściłem go w /etc/pm/sleep.d. Działa tylko wtedy, gdy użyję polecenia pm-suspend i wznowię pracę systemu. Nie ma to jednak wpływu na wznowienie, jeśli zawieszę system za pomocą echa „mem”> / sys / power / state . Zauważyłem też, że pm zawiesić trwa nieco dłużej niż echo „MEM” ... .

użytkownik 846400
źródło
To dobre pytanie. Chciałbym poznać różnicę.

Odpowiedzi:

2

Taki sam, ale inny.

W moim systemie Ubuntu pm-suspend kończy się tak samo:

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

Ale, jak zauważyłeś, PM-suspend otacza wiele innych rzeczy wokół wezwania do zarządzania procesem, takich jak rejestrowanie, blokowanie, sprawdzanie błędów, debugowanie i używane haki.

vi /usr/sbin/pm-suspend

i

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

jeszcze niższy poziom, sprawdź tutaj: https://stackoverflow.com/questions/5658170/how-ther-linux-kernel-process-the-write-to-sys-power-state

Matt
źródło