Встроенная функция ACPI приостанавливает работу Ubuntu PC после определенного периода. Чего я хочу добиться, чтобы вместо приостановки он полностью выключал компьютер после предопределенного времени простоя. Кто-нибудь может помочь, как я могу это сделать. Я могу найти отключение в сценарии ожидания, но это не позволяет мне достичь следующей функции:
Помогите, пожалуйста, могу ли я использовать встроенную функцию ACPI для выключения на холостом ходу и изменения времени по умолчанию, или есть другой способ сделать то же самое?
Можно достигнуть обеих вещей
с простым сценарием удара.
сценарий проверит время простоя и если это будет больше, чем данное число, то это полностью завершит работу системы.
можно затем установить этот сценарий для выполнения каждую минуту или каждые 10 секунд (как Вы предпочитаете), полностью cronjob. Корневой крон, выполненный каждый раз, когда Вы вошли в систему или не вошли в систему пользователь пока Ваш ПК, работает. Таким образом, это решит Вашу проблему.
Для получения текущего времени простоя в миллисекундах можно установить xprintidle
:
sudo apt-get install xprintidle
я создал простой сценарий удара для Вас, которых можно поместить, чтобы быть excuted полностью крон:
#!/bin/bash
export DISPLAY=:0
IDLE_TIME=`xprintidle`
MAX_IDLE_TIME=3600000
if [ "$IDLE_TIME" -ge "$MAX_IDLE_TIME" ]; then
shutdown -h now
fi
Примечание, что export DISPLAY=:0
требуется в порядке xprintidle для работы правильно под кроном. MAX_IDLE_TIME
макс. время простоя в миллисекундах после этого, компьютер будет закрыт. 3 600 000 миллисекунд равны одному часу. Можно изменить это значение потребностями.
Поэтому теперь сохранили этот файл где-нибудь в Вашей файловой системе (предпочтительно не Ваша домашняя папка, потому что это может быть зашифровано). Дайте sh исполнимые предварительные миссии файла:
chown +x file.sh
И затем корневой крон набора для выполнения его каждую минуту:
sudo crontab -e
и помещенный:
* * * * * /path/to/file.sh