Perbedaan antara menangguhkan ke "mem" dan pm-menangguhkan

3

Apa perbedaan antara

echo "mem" > /sys/power/state

dan

pm-suspend

Keduanya dapat menempatkan komputer ke mode tidur. Saya ingin menjalankan skrip secara otomatis ketika sistem melanjutkan dari tidur. Saya menulis sebuah skrip dan meletakkannya di /etc/pm/sleep.d. Ini hanya berfungsi ketika saya menggunakan perintah pm-suspend dan melanjutkan sistem kembali. Namun, itu tidak berpengaruh pada resume jika saya menangguhkan sistem dengan gema "mem" & gt; / sys / power / state . Saya juga memperhatikan bahwa pm-suspend memakan waktu sedikit lebih lama daripada gema "mem" ... .

user846400
sumber
Ini pertanyaan yang bagus. Saya ingin tahu bedanya.

Jawaban:

2

Sama sama, tetapi berbeda.

Pada sistem ubuntu saya pm-suspend akhirnya melakukan hal yang sama:

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

Tetapi seperti yang telah Anda perhatikan pm-suspend membungkus seluruh banyak hal lain di sekitar panggilan untuk pengelolaan proses seperti logging, mengunci, memeriksa kesalahan, men-debug dan kait yang Anda gunakan.

vi /usr/sbin/pm-suspend

dan

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

untuk level yang lebih rendah lagi, periksa di sini: https://stackoverflow.com/questions/5658170/how-ther-linux-kernel-process-the-write-to-sys-power-state

Matt
sumber