Есть ли «переменная», чтобы увидеть, находится ли компьютер в спящем режиме?

Существует ли какая-либо переменная в Ubuntu (14.04), которую можно прочитать в bash-скрипте, чтобы узнать, в каком режиме находится компьютер (активный / спящий режим / режим ожидания)? Если да, можно ли посмотреть также, как долго работает текущий режим.

Я хотел бы сделать скрипт, который будет запускаться, когда компьютер переходит в спящий режим.

Тот же вопрос для переменной, которая сообщит, в каком состоянии находится монитор.

0
задан 14 April 2016 в 13:09

2 ответа

Там существует /etc/pm/sleep.d папка, которая часто используется для выполнения , сценарии на приостанавливают/возобновляют .

типичная форма - это:

#!/bin/bash

case "$1" in
    suspend)
        # executed on suspend
        ;;
    resume) 
        # executed on resume
        ;;
    *)
        ;;
esac

я предположил бы, что Вы устанавливаете для, приостанавливают опцию, пишущий, что время приостанавливает в файл (эти date, команда, самая легкая, вероятно, будет date +%s для получения времени эпохи Unix), и та же идея для резюме, кроме Вас будет читать файл формы в переменную и вычислять различие с текущим временем.

Что-то вроде этого:

#!/bin/bash

case "$1" in
    suspend)
        # executed on suspend
        date +%s > /tmp/suspend_time.txt
        ;;
    resume) 
        # executed on resume
        suspend_time=$(< /tmp/suspend_time.txt)
        current_time=$(date +%s)
        difference=$(($current_time-$suspend_time))
        if [ $difference -gt 60  ]; # greater than 1 minute (60 seconds)
        then
             # put some kind of command you want to run here
        fi
        ;;
    *)
        ;;
esac

Примечание это - просто проект, и непротестированный, но это - вероятное предложение, за которым можно было следовать.

3
ответ дан 14 April 2016 в 23:09
  • 1
    Ха-ха прекрасный, chsh.ldap -s /usr/bin/zsh myusername дает мне Segmentation fault. – jchook 11 April 2018 в 11:21

Это не возможно. Если Ваш компьютер находится в режиме ожидания или режиме приостановки, Ваша программа замораживается и не может выполнить код. Если Ваша программа работает, Ваш компьютер активен.

3
ответ дан 14 April 2016 в 23:09

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

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