Отключение после простоя (но не при использовании сервера SAMBA)

Сценарий инициализации daemon находится в /etc/init.d/

Чтобы включить его для запуска после запуска

update-rc.d daemon defaults

Другие параметры вы найдете в man update-rc.d. 2]

Чтобы запустить его

invoke-rc.d daemon start

Для пользователей systemd:

См. Как написать сценарий запуска для systemd

И использовать для автозапуска службы.

1
задан 4 September 2016 в 23:40

1 ответ

Вы можете запустить фоновый скрипт (очень низкий сок), который приостановит работу компьютера, округленное на 10 секунд:

#!/usr/bin/env python3
import time
import subprocess

# --- set idle time below (seconds)
idle_set = 1200
# ---

def get_packets():
    return int([l.strip().split()[1].replace("packets:", "") for l in \
            subprocess.check_output("ifconfig").decode("utf-8").splitlines()\
            if " RX " in l][0])

def get_idle():
    return int(int(subprocess.check_output("xprintidle").decode("utf-8").strip())/1000)

data1 = get_packets()
t = 0

while True:
    time.sleep(10)
    data2 = get_packets()
    if data2 - data1 > 3000:
        t = 0
    else:
        t += 10
    idletime = get_idle()
    if all([idletime > idle_set, t > idle_set]):
        subprocess.Popen(["systemctl", "suspend", "-i"])
    data1 = data2

Что он делает

Один раз на 10 секунд, он проверяет текущий полученный объем данных, сравнивая его с 10 секундами назад (используя ifconfig). Если он превышает определенную величину, «счетчик» устанавливается в ноль, иначе добавляется a0 секунд в «поток» -среднее время. Также один раз в 10 секунд он смотрит на «общее» время простоя, используя xprintidle

Если оба превышают установленное время (в начале сценария), компьютер усыпляется. [ ! d6]

Как настроить

Скрипт нуждается в xprintidle
sudo apt-get xprintidle
Скопируйте сценарий в пустой файл, сохраните его как set_idle.py. В разделе заголовка скрипта установите

Примечание:

Этот ответ предполагает, что это будет означать, трафик через Ethernet-соединение. Если нет, функция get_packets(), возможно, нуждается в небольшом редактировании.

1
ответ дан 23 May 2018 в 06:28
  • 1
    Благодаря! Кажется, что сценарий преуспеет в том, что он хочет сделать, но я не уверен, что это то, что мне нужно. При потоковом контенте это не количество принятых пакетов, а количество отправленных пакетов, которые должны контролироваться. Кроме того, 3000 - это немного волшебная константа. Идея, похоже, хороша, чтобы отправить компьютер в режим сна, если он не загружает материал. – user2891462 8 September 2016 в 13:57

Другие вопросы по тегам:

Похожие вопросы: