Батарея низкое пользовательское правило (спящий режим)

  1. конечно
  2. * 2 * * * getmail -n -q ... > /dev/null

если Вы хотите перенаправление и stdout и stderr, то ... 2>&1 > /dev/null

3
18.09.2013, 21:48
2 ответа

Для любого желающего схожую функциональность, вот сценарий Ruby.

Это поддерживает, несколько приостанавливают подряд (истощение, приостановите, заряжайте, истощение, приостановите...), и максимально устойчиво.

Теперь это также поддерживает libnotify, таким образом, Вы получаете уведомление каждую минуту.

#!/usr/bin/ruby
    require 'eventmachine'
    require 'libnotify'

    period = 40 # poll evey N seconds
    limit = (ARGV[0] || 20).to_i # allow usage N minutes after depletion

    def get(prop)
        File.read("/sys/class/power_supply/BAT0/#{prop}").chomp
    end

    def capacity
        get(:charge_now).to_i
    end

    def onBattery?
        get(:status) != 'Charging'
    end

    def action!
        `sync`
        `systemctl suspend`
    end

    puts 'Starting battery abuse agent.'

    EM.run {
        ticks = 0
        EM.add_periodic_timer(period) {
            if capacity == 0 && onBattery?
                ticks += 1
                if ticks % 5 == 0
                    Libnotify.show summary: 'Baterry being abused',
                        body: "for #{period*ticks} seconds.", timeout: 7.5
                end
            else
                ticks = [ticks-1, 0].max
            end
            if ticks*period > limit*60
                action!
            end
        }
    }
1
27.01.2020, 21:23
  • 1
    Примите один из ответов (Ваш или мой, какой бы ни на самом деле работает на Вас, хорошо принимать Ваш собственный ответ), таким образом, вопрос может быть отмечен, как отвечено. –  terdon♦ 19.09.2013, 16:41

Я не буду читать Вам лекцию о Вашей батарее, так как Вы сами использовали слово 'злоупотребление' :).

Один способ сделать это был бы чем-то вроде этого:

#!/usr/bin/env bash

while [ $(acpi | awk '{print $NF}' | sed 's/%//') -gt 0 ]; do
    ## Wait for a minute
    sleep 60s
done

## The loop above will exit when the battery level hits 0.
## When that happens, issue the shitdown command to be run in 15 minutes
shutdown -h +15

Вы могли добавить это к /etc/crontab быть выполненным корнем.

2
27.01.2020, 21:23
  • 1
    Большой затем!:) Только вместо того, чтобы использовать нестандартную команду acpi, существует файл /sys/class/power_supply/BAT0/charge_now. –  Rok Kralj 18.09.2013, 21:47

Теги

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