Сценарий, который перезагрузит ПК на определенной частоте GPU

Недавно я начал добычу litecoins. Мой шахтер состоит из 3 графических процессоров Radeon R9 290x. Время от времени один из них (а не конкретный, случайный случай) останавливает добычу. Обычно перезапуск cgminer (программа для запуска) не помогает, единственное, что помогает, это перезагрузка. На следующей неделе я уезжаю в течение 8 дней, и мне некому это делать для меня, поэтому я подумал о сценарии, который будет делать это автоматически.

Скрипт должен периодически проверять, работают ли все графические процессоры, а если нет - перезагрузка. Я думаю, что чтение температуры - это самая легкая вещь, чтобы определить, работают ли все карты. Я знаю, как читать температуру, перезагружать, добавлять материал в cron.

Получить команду температуры:

 aticonfig --odgt --adapter=all | grep Sensor:

Выход выглядит следующим образом:

 Sensor: Temperature - 77.00 C
 Sensor: Temperature - 77.00 C
 Sensor: Temperature - 77.00 C

I хотел бы, чтобы скрипт читал числовое значение и перезагружался, если он опускается ниже XX.

Можете ли вы мне помочь?

1
задан 5 January 2014 в 03:09

1 ответ

Это должно работать:

#!/usr/bin/env bash    
while true; do
  aticonfig --odgt --adapter=all | 
   awk -vt="$1" '(/Sensor:/ && $(NF-1) < t ){exit(1)}' || reboot 
   sleep 10 
done

Сохраните сценарий выше как gpu_temp.sh, сделайте его исполняемым и запустите его с заданным вами пределом температуры:

/path/to/gpu_temp.sh 77
2] У меня нет карты ati, поэтому я не могу проверить это, но это должно привести к перезагрузке вашего компьютера, если ядро ​​GPU опустится ниже 77 ° C.

Пояснение

while true запускает бесконечный цикл, скрипт будет работать до тех пор, пока не будет убит. Строка awk проверяет, находится ли следующее последнее поле (($NF-1)), содержащее Sensor:, меньше, чем вы выбрали, и, если это так, выйдет с статусом выхода 1. Команда справа от || будет выполнена, если команда слева не удалась, если она вышла с ненулевым статусом. Таким образом, если один из ядер ниже определенной температуры, сценарий awk завершится с ошибкой, и система будет перезагружена. sleep 10 просто приостанавливает скрипт на 10 секунд, поэтому вы не наводняете свою систему запросами.
-2
ответ дан 24 May 2018 в 13:22

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

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