Создание сценария для сообщения о том, что система приостановлена ​​или не активна?

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

Вот код, который должен выводиться в файл, когда система переходит в режим SUSPEND или AWAKES:

(этот код находится в /etc/pm/sleep.d)

( также нужно было сделать файл исполняемым: sudo chmod + x sleep_mode)

(при запуске из командной строки записывается "сценарий приостановки" в файл.

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

#!/bin/bash

# general entry 
echo "suspend script"
echo "%suspend script" >>  /tmp/suspend_time.txt
date +%s >>  /tmp/suspend_time.txt

case "$1" in
    suspend)
        # executed on suspend
        echo "%system_suspend" >> /tmp/suspend_time.txt
        date +%s >> /tmp/suspend_time.txt
        ;;
    resume) 
        # executed on resume
        echo "%system_resume" >> /tmp/suspend_time.txt
        date +%s >> /tmp/suspend_time.txt
        ;;
    *)
        ;;
esac
4
задан 20 December 2020 в 22:34

1 ответ

Скопируйте свой скрипт в:

/lib/systemd/system-sleep/sleep_mode

Вам нужно будет использовать полномочия sudo. После копирования пометьте его как исполняемый:

sudo chmod +x /lib/systemd/system-sleep/sleep_mode

Дополнительно измените все вхождения:

echo "%s

на:

echo "s

Знак процента не нужен.

Существующая команда даты в порядке:

date +%s >>  /tmp/suspend_time.txt

Однако она отформатирована как количество секунд с 1 января 1970 года, что не является наиболее удобочитаемым форматом даты.


выражение case

Выражение case можно изменить:

case $1/$2 in
  pre/*)
    echo "$0: Going to $2..."
    # Place your pre suspend commands here, or `exit 0` if no pre suspend action required
    ;;
  post/*)
    echo "$0: Waking up from $2..."
    # Place your post suspend (resume) commands here, or `exit 0` if no pre suspend action required
    ;;
esac
4
ответ дан 20 December 2020 в 19:49

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

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