วิธีปิดใช้งานโหมดสลีปและไฮเบอร์เนตชั่วคราวจากบรรทัดคำสั่ง


10

ดูเหมือนว่ามีหลายวิธีที่การตั้งค่าของอูบุนตูสามารถจัดการได้อย่างถาวรในโหมดสลีปเมื่อต้องการตราบเท่าที่ตรงตามเงื่อนไขที่กำหนดไว้ อย่างไรก็ตามนี่เป็นวิธีแก้ไขปัญหาที่ถาวรมากขึ้นซึ่งไม่ได้คำนึงถึงภารกิจที่หายากซึ่งอาจต้องการใช้นโยบายมาตรฐานชั่วคราว ปัญหาที่ฉันพบคือฉันมีสคริปต์ที่ใช้เวลานานมากในการสำรองข้อมูลและฉันไม่ต้องการให้คอมพิวเตอร์เข้าสู่โหมดสลีปหรือไฮเบอร์เนตในขณะที่กระบวนการนั้นกำลังทำงานอยู่ซึ่งโดยปกติจะใช้เวลาประมาณ 30-50 นาที ดังนั้นจึงมีคำสั่งที่ฉันสามารถรวมไว้ในสคริปต์สำรองของฉันที่จะป้องกันไม่ให้ระบบจำศีล / หลับขณะสคริปต์สำรองทำงานและยังมีคำสั่งให้กู้คืนนโยบายพลังงานเริ่มต้นปกติหลังจากการสำรองข้อมูลเสร็จสิ้นหรือไม่

สิ่งที่ต้องการ

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

คำตอบ:


10

บน Ubuntu 16.04 LTS ฉันใช้สิ่งต่อไปนี้เพื่อปิดการใช้งาน suspend:

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

และนี่เพื่อเปิดใช้งานอีกครั้ง:

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

2
การส่งผ่าน--runtimeไปยังsystemctlทำให้หน้ากากชั่วคราวโดยรีเซ็ตในการบู๊ตครั้งถัดไป
sircolinton

3

คุณสามารถใช้gsettingsในสคริปต์ของคุณเพื่อปิดใช้งานการหยุดชั่วคราวโดยอัตโนมัติในการตั้งค่าพลังงานและเรียกคืนการทำงานเริ่มต้นของการตั้งค่าพลังงานอีกครั้ง

นี่คือการกำหนดค่าอย่างง่าย ๆ ซึ่งจะทำให้การหมดเวลาใช้งานในปัจจุบันของสลีปปิดการใช้งานและหลังจากดำเนินการบางอย่างให้เปิดใช้งานอีกครั้ง

#!/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

ฉันมีปัญหาเดียวกันปีที่แล้วสำหรับการสำรองข้อมูลที่ใช้เวลาหลายชั่วโมง!

คุณสามารถลอง Keep.Awake https://launchpad.net/keep.awake มันสามารถตรวจสอบโหลด CPU, ปริมาณการใช้เครือข่ายและกิจกรรมของผู้ใช้สำหรับเกณฑ์ขั้นต่ำ

ฉันยังไม่ได้รับรอบในการสร้างสแน็ปอินหรือ deb สำหรับมัน อย่างไรก็ตามคุณสามารถดาวน์โหลดโปรแกรมได้จาก Launchpad ที่นี่เป็นการชั่วคราว

เวอร์ชันปัจจุบันเสถียรและใช้ได้กับ Ubuntu ทุกรุ่นตั้งแต่ 14.04 ถึง 16.04 ที่กล่าวว่าฉันปรับปรุงอย่างต่อเนื่องและจะเพิ่มคุณสมบัติใหม่

มันทำงานเหมือนคำสั่งที่เหมาะสม ประเภท - ช่วยเพื่อดูรายการทั้งหมดของสิ่งที่สามารถทำได้ ตัวอย่างด้านล่างเป็นตัวอย่างเพียงไม่กี่:

./keepawake.py --help

หากต้องการเรียกใช้แบบโต้ตอบ:

./keepawake.py

วิธีเรียกใช้เป็นบริการพื้นหลัง:

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

หากต้องการเรียกใช้เป็นบริการพื้นหลังและตั้งค่า 15 นาที (900 วินาที) เป็นเวลากิจกรรมผู้ใช้ก่อนที่จะพิจารณาว่าผู้ใช้ไม่ได้ใช้งาน:

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

วิธีเรียกใช้เป็นบริการพื้นหลังและตั้งค่าโหลด CPU ขั้นต่ำเป็น 13%:

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

หากต้องการเรียกใช้เป็นบริการพื้นหลังและตั้งค่าเครือข่ายขั้นต่ำเป็น 5KB (5120 ไบต์):

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

วิธีเรียกใช้การตั้งค่าทั้งสามด้านบน (เครือข่าย, CPU, ผู้ใช้ไม่ได้ใช้งาน) ในครั้งเดียว:

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

1

นี่คือวิธีการทำเช่นนี้ใน Xfce (ขอบคุณ g_p สำหรับคำตอบของพวกเขาซึ่งทำให้ลูกบอลกลิ้งไปสำหรับตัวเอง)

#!/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"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.