Cara menonaktifkan sementara waktu dan hibernasi dari baris perintah


10

Sepertinya ada banyak cara di mana pengaturan Ubuntu dapat dimanipulasi secara permanen untuk tidur ketika diinginkan selama kondisi yang telah ditentukan terpenuhi. Namun, ini adalah solusi yang lebih permanen yang tidak memperhitungkan tugas-tugas langka yang mungkin ingin untuk sementara meninggalkan kebijakan standar. Masalah yang saya hadapi adalah bahwa saya memiliki skrip yang berjalan sangat lama untuk melakukan backup dan saya tidak ingin komputer tidur atau hibernasi saat proses tertentu berjalan yang biasanya memakan waktu 30-50 menit. Oleh karena itu, apakah ada perintah yang dapat saya sertakan ke dalam skrip cadangan saya yang akan mencegah sistem hibernasi / tidur saat skrip cadangan berjalan dan apakah ada juga perintah untuk memulihkan kebijakan daya default normal setelah cadangan selesai?

sesuatu seperti

#!/usr/bin/bash
#disable normal powerpolicy
disable-power-policies
backup /dev/sda /dev/sdb /dev/fioa /dev/fiob
#enable power policies.
enable-power-policies

Jawaban:


10

Di Ubuntu 16.04 LTS, saya berhasil menggunakan yang berikut untuk menonaktifkan penangguhan:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Dan ini untuk mengaktifkannya kembali:

sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

2
Melewati --runtimeke systemctlakan membuat topeng sementara, mengatur ulang saat boot berikutnya.
sircolinton

3

Anda dapat menggunakan gsettingsskrip untuk menonaktifkan penangguhan otomatis dalam pengaturan daya dan mengembalikan perilaku pengaturan daya default.

Berikut adalah konfigurasi sederhana yang pertama kali mendapatkan batas waktu tidur saat ini, menonaktifkannya dan setelah melakukan beberapa tugas mengaktifkannya kembali.

#!/bin/bash   

#get the current timeout for automatic suspend both for on battey power and when plugged in.
a=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout)
b=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout)


#Disable automatic suspend 
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0

#Your task here
sleep 5

#Enable the automatic suspend
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout $a
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout $b

3

Saya memiliki masalah yang sama tahun lalu untuk backup yang membutuhkan waktu beberapa jam!

Anda dapat mencoba Keep.Awake https://launchpad.net/keep.awake Dapat memonitor beban CPU, lalu lintas jaringan dan aktivitas pengguna untuk ambang minimum.

Saya masih belum sempat membuat snap atau deb untuk itu. Namun untuk sementara Anda dapat mengunduh program dari Launchpad di sini

Versi saat ini stabil dan berfungsi pada semua versi Ubuntu dari 14,04 hingga 16,04. Itu mengatakan saya terus meningkatkannya dan akan menambahkan fitur baru.

Ini bekerja seperti perintah yang tepat. Ketik --help untuk melihat daftar lengkap tentang apa yang dapat dilakukan. Contoh-contoh di bawah ini hanya beberapa:

./keepawake.py --help

Untuk menjalankan secara interaktif:

./keepawake.py

Untuk dijalankan sebagai layanan latar belakang:

nohup ./keepawake.py -r > /dev/null 2>&1 &

Untuk menjalankan sebagai layanan latar belakang dan menetapkan 15 mnt (900 detik) sebagai waktu siaga aktivitas pengguna sebelum menentukan bahwa pengguna menganggur:

nohup ./keepawake.py -u 900 -r > /dev/null 2>&1 &

Untuk menjalankan sebagai layanan latar belakang dan menetapkan beban CPU minimum 13%:

nohup ./keepawake.py -c 13 -r > /dev/null 2>&1 &

Untuk menjalankan sebagai layanan latar belakang dan menetapkan lalu lintas jaringan minimum sebagai 5KB (5120 byte):

nohup ./keepawake.py -s 5120 -r > /dev/null 2>&1 &

Untuk menjalankan ketiga pengaturan di atas (jaringan, CPU, idle Pengguna) dalam sekali jalan:

nohup ./keepawake.py -s 5120 -c 13 -u 900 -r > /dev/null 2>&1 &

1

Inilah cara melakukannya di Xfce. (Terima kasih kepada g_p untuk jawaban mereka yang membuat bola bergulir untukku sendiri.)

#!/bin/bash

# Grab current sleep timeout on battery and ac
a=$(xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac)
b=$(xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery)

# Set sleep to never on battery and ac
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac -s 14
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s 14

# Your task here
sleep 5

# Reset sleep to what it was before on battery and ac
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac -s "$a"
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s "$b"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.