Автоматический Fedora приостанавливает

Каналы, созданные экраном, только доступны владельцем, поэтому это не должно быть проблемой безопасности.

5
21.05.2011, 11:11
3 ответа

Философия Unix должна иметь инструменты, которые выполняют одно задание плюс оболочка для объединения их. Таким образом, мы объединим приостановить команду с командой do-something-later. Я не знаю то, что стандартная команда для приостановки находится на Fedora (существует несколько плавания вокруг); я буду использовать pm-suspend который является обычной командой на Ubuntu.

Приостановить после X секунд: sleep X && pm-suspend

Приостановить в установленный срок: echo pm-suspend | at HH:MM

5
27.01.2020, 20:39
  • 1
    Хороший ответ. Это действительно более плодотворно, чтобы также сделать это небольшим уроком в философии Unix. +1 –  Steven D 08.09.2010, 00:52

pm-suspend утилита (который содержится в пополудни-utils пакет и вероятно уже установлен на Вашей машине) - то, что используется для отправки компьютера в режим приостановки. Таким образом для приостановки "прямо сейчас" можно работать (как корень или использующий sudo):

# pm-suspend

К сожалению, пополудни - приостанавливают, не берет параметр времени насколько я знаю. Однако Вы могли записать сценарий обертки, который взял параметр времени. Сохраните сценарий где-нибудь в Вашем $PATH и chmod +x это. Не звоните это "приостанавливает". Простой может быть похожим на это:

#!/bin/sh
#change this following line to wherever pm-suspend lives
suspend="/usr/sbin/pm-suspend"

#make sure we are root
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

if [ -z "$1" ]; then
    echo "mysuspend: time in seconds expected"
    exit 1;
elif [ "$1" = "now" ]; then
    echo "Suspending now!"
    wait="0"
else
    #make sure we get a number.
    echo "$1" | grep [a-zA-Z] > /dev/null
    if [ $? -ne 0 ]; then
        echo "Suspending in $1 seconds"
        wait="$1"
    else
        echo "mysuspend: time in seconds expected"
        exit 1
    fi
fi

sleep "$wait"
$suspend

Предупреждение: Я не протестировал это вне "работ для меня".

Можно рассмотреть изменение приостановить команды к pm-suspend-hybrid, который также сохранит файл спящего режима в случае, если у Вас заканчивается питание, в то время как приостановлено.

Другие утилиты, что можно интересоваться или это могло сделать сценарий более устойчивым, пополудни - в спящем режиме, pm-is-supported.

1
27.01.2020, 20:39

Если у вас нет под рукой команды приостановки pm -и вы взяли 20:30в качестве примера:(Замените ее на, когда вы хотите приостановить (или проснуться ), например. tomorrow 1:00также подойдет)

sleep  $(($(date --date "20:30" +%s) - $(date +%s)))

&& эхо-память > /sys/power/state

Кроме того, вы также можете сказать машине, когда проснуться:

rtcwake -m mem -s $(($(date --date "20:30" +%s) - $(date +%s)))

Иногда это не работает, так что это работает лучше:

while sleep 1; do rtcwake -m mem -s $(($(date --date "20:30" +%s) - $(date +%s))) && break; done 

Чтобы перейти в режим гибернации, просто используйте diskвместо memв любой из этих команд. Эти команды будут работать на bash. В более примитивной оболочке просто используйте``(обратные кавычки )вместо $( )и поместите $перед $(( )).

0
17.11.2021, 15:50

Теги

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