Cách tạm thời tắt chế độ ngủ và ngủ đông từ dòng lệnh


10

Có vẻ như có nhiều cách mà các cài đặt của Ubuntu có thể bị thao túng vĩnh viễn để ngủ khi muốn miễn là điều kiện được xác định trước được đáp ứng. Tuy nhiên, đây là những giải pháp lâu dài hơn, không tính đến các nhiệm vụ hiếm hoi có thể muốn tạm thời từ bỏ chính sách tiêu chuẩn. Vấn đề mà tôi gặp phải là tôi có một đoạn script chạy rất dài để thực hiện một số bản sao lưu và tôi không muốn máy tính ngủ hoặc ngủ đông trong khi quá trình cụ thể đó đang chạy thường mất 30-50 phút. Do đó, có một lệnh mà tôi có thể đưa vào tập lệnh sao lưu của mình để ngăn hệ thống ngủ đông / ngủ trong khi tập lệnh sao lưu đang chạy và cũng có lệnh khôi phục chính sách nguồn mặc định bình thường sau khi sao lưu xong?

cái gì đó như

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

Câu trả lời:


10

Trên Ubuntu 16.04 LTS, tôi đã sử dụng thành công cách sau để vô hiệu hóa tạm ngưng:

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

Và điều này để kích hoạt lại nó:

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

2
Chuyển --runtimeđến systemctlsẽ làm cho mặt nạ tạm thời, đặt lại khi khởi động tiếp theo.
sircolinton

3

Bạn có thể sử dụng gsettingstrong tập lệnh của mình để tắt tự động tạm dừng trong cài đặt nguồn và khôi phục lại hành vi mặc định của cài đặt nguồn.

Đây là một cấu hình đơn giản mà lần đầu tiên có thời gian chờ hiện tại để ngủ, vô hiệu hóa nó và sau khi thực hiện một số tác vụ kích hoạt lại nó.

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

Tôi đã có cùng một vấn đề chính xác vào năm ngoái cho các bản sao lưu mất vài giờ!

Bạn có thể dùng thử Keep.Awake https://launchpad.net/keep.awake Nó có thể theo dõi tải CPU, lưu lượng mạng và hoạt động của người dùng trong ngưỡng tối thiểu.

Tôi vẫn chưa tìm được cách để tạo một snap hoặc deb cho nó. Tuy nhiên, tạm thời bạn có thể tải xuống chương trình từ Launchpad tại đây

Phiên bản hiện tại ổn định và hoạt động trên tất cả các phiên bản Ubuntu từ 14.04 đến 16.04. Điều đó nói rằng tôi đang tiếp tục cải thiện nó và sẽ thêm các tính năng mới.

Nó hoạt động như một lệnh thích hợp. Nhập - trợ giúp để xem danh sách đầy đủ về những gì có thể được thực hiện. Các ví dụ bên dưới chỉ là một vài:

./keepawake.py --help

Để chạy tương tác:

./keepawake.py

Để chạy như một dịch vụ nền:

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

Để chạy dưới dạng dịch vụ nền và đặt 15 phút (900 giây) làm thời gian rảnh của hoạt động người dùng trước khi xác định rằng người dùng không sử dụng:

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

Để chạy dưới dạng dịch vụ nền và đặt tải CPU tối thiểu là 13%:

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

Để chạy dưới dạng dịch vụ nền và đặt lưu lượng mạng tối thiểu là 5KB (5120 byte):

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

Để chạy tất cả ba cài đặt ở trên (mạng, CPU, Người dùng không hoạt động) trong một lần:

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

1

Đây là cách để làm điều này trong Xfce. (Cảm ơn g_p vì câu trả lời của họ đã khiến tôi tự lăn bóng.)

#!/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"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.