Вопрос или проблема
Существует ли способ настроить автоматическое отключение компьютера только тогда, когда он не выполняет никакую работу (неактивен и не обучается)? Я использую TensorFlow. Система должна отключаться, когда она не обучает и не используется мной.
Я спрашиваю, потому что когда я обучаю ИИ, это занимает время, и Ubuntu считает, что ПК неактивен.
Это на Ubuntu 18.04.2 LTS.
Вы можете написать задание cron, которое проверяет, запущен ли ваш процесс (pgrep -u $YOUR_LOGIN_HERE
) каждые пять минут, а затем вызывает suspend
или что-то подобное.
Однако вам придется выйти из системы, чтобы это работало.
Ответ или решение
Существует множество способов автоматизации выключения компьютера на Ubuntu 18.04.2 LTS в зависимости от активности системы, и в частности, если ваш компьютер занят обучением модели ИИ с использованием TensorFlow. Давайте рассмотрим, как можно настроить автоматическое выключение системы только в случае, если она не выполняет никаких задач, таких как обучение алгоритмов или активные действия пользователя.
1. Использование скрипта для отслеживания активности
Одним из наиболее практичных подходов является написание скрипта, который будет проверять состояние системных процессов. Как вы уже упомянули, можно использовать команду pgrep
для определения запущенных процессов от вашего пользователя.
Шаги по созданию автоматического выключения:
-
Создайте скрипт:
Напишите простой Bash-скрипт, который будет проверять, есть ли активные процессы TensorFlow или другие ваши программы. Например:#!/bin/bash # Проверяем, есть ли активные процессы if pgrep -u $USER python; then # Если есть, выходим без действия exit 0 fi # Если процессов нет, выключаем систему shutdown now
Сохраните этот скрипт, например, под именем
check_and_shutdown.sh
и дайте ему права на выполнение:chmod +x check_and_shutdown.sh
-
Настройте cron:
Установите cron-задание, которое будет запускать ваш скрипт каждые 5 минут. Откройте кронтаб для редактирования:crontab -e
Добавьте следующую строку в файл:
*/5 * * * * /path/to/check_and_shutdown.sh
Это позволит вашему скрипту выполняться каждые пять минут и проверять, используется ли система или нет.
2. Учет пользовательских действий
Чтобы предотвратить выключение в случае активного взаимодействия пользователя, можно дополнительно интегрировать проверку на активные сеансы ввода (клавиатура и мышь). Это можно сделать с помощью xprintidle
или xidle
— утилит, отслеживающих время бездействия пользователя.
Пример проверки бездействия пользователя:
Вы можете добавить в ваш скрипт следующий фрагмент:
# Получаем время бездействия пользователя
idle_time=$(xprintidle)
# Устанавливаем порог бездействия, например 300000 миллисекунд (5 минут)
if [ "$idle_time" -gt 300000 ]; then
shutdown now
fi
Заключение
В итоге, данной настройкой вы сможете обеспечить автоматическое выключение вашего компьютера, когда он не занят обучением моделей искусственного интеллекта и не используется вами. Настроив данное поведение через простую автоматизацию, вы сможете минимизировать энергозатраты и оптимизировать использование ресурсов вашей системы.
Эта конфигурация может быть полезна не только для пользователей TensorFlow, но и для всех, кто использует длительные вычислительные процессы на Ubuntu. Надеюсь, это руководство было для вас полезным, и вы сможете успешно реализовать данное решение.