Отключение, когда оно не используется в течение определенного времени

У меня есть «медиацентр», который иногда забыл выключить ночью. Если я помню, я, как правило, удаляюсь в свой компьютер с медиа-центром и закрываю его, но большинство ночей я забываю сделать это, и компьютер работает всю ночь (и на следующий день тоже).

Есть ли способ отключить ПК через диалоговое окно (т. "Do you want to shutdown?" [Yes] [No] )? Причина, по которой я хочу открыть диалоговое окно, заключается в том, что иногда мы смотрим фильмы поздно ночью, и я не хочу произвольно останавливаться.

Я могу выполнить задание cron, которое запускает скрипт в 1 утра, но я не могу понять, как выполнить shutdown или shutdown в качестве стандартного пользователя. Любая помощь? Я запускаю Linux Mint 17.3 (Ubuntu 14.04).

  • Ubuntu plus whonix
  • Какие файлы библиотеки необходимы для запуска двоичного файла с альтернативной версией libc?
  • Как установить Unison 2.40 на Ubuntu 16.04 xenial (для устранения «Неустранимая ошибка: получен неожиданный заголовок»)
  • Ubuntu: где добавить скрипт, выполняющий SQL при запуске машины?
  • minicom показ офлайн
  • Выход из учетной записи пользователя после выполнения программы
  • Ошибка: QOpenGLShader: не удалось создать шейдер - при запуске через ssh
  • Сенсорная панель не распознается в Linux (ASUS R751LB)
  • 2 Solutions collect form web for “Отключение, когда оно не используется в течение определенного времени”

    Есть ли способ отключить ПК через диалоговое окно (т. "Do you want to shutdown?" [Yes] [No] )?

    Я считаю, что самый простой способ сделать это – через xmessage . Что-то вроде этого:

     #!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin export DISPLAY=:0.0 xmessage -timeout 10 "Shutdown computer?" -buttons yes:0,no:1 case $? in 0) echo "Shutting down..." #systemctl poweroff ;; 1) echo "Ok." ;; *) echo "Mystic error!" ;; esac 

    Я добавил $PATH и $DISPLAY чтобы их можно было использовать cron (подробнее об этом здесь ). И, конечно, если вы хотите выключить компьютер, вам придется раскомментировать эту строку, и вы можете, конечно же, удалить и инструкции echo . Я просто быстро собрал это вместе в качестве образца.

    Суть его: когда пользователь нажимает « yes код возврата равен 0 и компьютер выключается. Если пользователь не нажал, код возврата равен 1 , а затем не выключайте. (Редактировать 🙂 Если ни один пользователь не нажимает какую-либо кнопку после timeout секунд (в этом случае 10), xmessage выйдет с 0 и компьютер выключится.

    При выполнении сценарий создает это небольшое диалоговое окно:

    https://s22.postimg.org/irl97w835/xmessage.png

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

    Слишком много актуальных вопросов в одном вопросе. Задайте отдельные вопросы в следующий раз. Описанную вами проблему необходимо решить с помощью опции видеоплеера «Предотвратить приостановку» или «отключить sscreensaver». VLC имеет эту опцию где-то в настройках. Однако люди сообщают, что иногда это не работает.
    Чтобы показать диалоги из сценария bash, используйте утилиту xdialog . Тем не менее, он не будет работать, если он запускается из внешней пользовательской сессии, например, из crontab. Сначала вам нужно отключить безопасность сервера X.
    Чтобы запустить poweroff в качестве стандартного пользователя, запустите его через systemd
    systemctl poweroff .

    Interesting Posts

    Могу ли я использовать встроенный подстановочный знак Zsh для замены использования `find` здесь?

    Использование команды break в качестве аргумента функции

    Языковая панель в RHEL 6

    Не удается войти в удаленную систему debian с ключом RSA и ssh.exe от Cygwin

    Отключенный монитор по-прежнему отображается как подключенный

    Является ли PXEBooting способ быстрого восстановления сервера?

    Может ли процесс, запущенный в контейнере linux, взаимодействовать с другим процессом, запущенным на ОС хоста через IPC?

    почему новый pid меньше старых?

    Как получить имя Диспетчера отображения в Linux?

    сбросить счетчик циклов

    Передача путей и имен файлов в программу из сценария bash

    Не удалось достоверно определить полное доменное имя сервера, используя :: 1 для ServerName

    Где «последний» хранит имена хостов пользователя?

    Как распечатать все строки файла с повторяющимися значениями в определенном столбце

    Подавать контент, сгенерированный скриптом с Apache

    Linux и Unix - лучшая ОС в мире.