Перейти к содержимому

egorbtc's блог

  • записи
    4
  • комментария
    23
  • просмотров
    88 317

Майнинг без остановки!

egorbtc

18 839 просмотров

В процессе майнинга битков я столкнулся с проблемой. А именно с тем, что на моей рабочей машинке периодически отваливался cgminer. Связано это, я думаю, с тем, что это происходит именно на рабочем компьютере. То одну программу запустишь, то другую... А операционкой на компе, к сожалению, является Винда. Но я не буду сейчас обсуждать ее плюсы и минусы. Лучше расскажу о том, как я проблему решил. И так цель:

  1. Необходимо обеспечить постоянную и бесперебойную работу программы cgminer. В случае, если программа завершилась аварийно, обеспечивать ее перезапуск.
     
  2. Необходимо периодически программу перезагружать (например раз в час), чтобы исключить возникновение возможных ошибок.
     
  3. Запуск программы необходимо осуществлять в скрытом режиме (зачем мозолить глаза случайным свидетелям).

Для решения своей задачи я воспользовался такой замечательной программой, как nnCron. Вот, что про нее пишут на родном сайте:

 

nnCron - это компактный (900k), но мощный планировщик и менеджер автоматизации с собственным скриптовым языком, основанным на синтаксисе языка программирования Форт. Помимо традиционной для планировщика способности запускать в указанное время программы, "напоминалки" и открывать документы, nnCron умеет:

  • запускать произвольные программы как сервисы
  • запускать задачи "от имени" указанных юзеров
  • отслеживать и перезапускать просроченные задачи и напоминалки
  • выключать или "усыплять" компьютер в заданное время, "будить" компьютер, чтобы запустить задачу
  • отображать/скрывать/закрывать/убивать/сворачивать/разворачивать и прятать в системный трей заданные окна, добавлять в трей произвольные иконки
  • менять размер и местоположение окон, а также изменять их "прозрачность"
  • выводить на экран и в лог-файл любые сообщения, в том числе и запросы на выполнение указанных действий
  • работать с клипбордом, файлами и реестром
  • эмулировать клавиатурный ввод и операции с мышкой
  • звонить и класть трубку
  • воспроизводить аудио-файлы и "пищать" через системный динамик
  • синхронизировать системное время
  • присваивать процессам указанный приоритет и прерывать работу любых запущенных процессов
  • автоматически перезапускаться после фатальных ошибок

Немаловажным фактом является возможность работы программы в качестве службы. nnCron работает в Windows 7 32 и 64 бит.

Саму программу я скачал с родного сайта по ссылке. Это бета версия, аж от 2008 года :-) При установке я указал, что программа устанавливается как системная служба:

54a49242c5c1.png

Данная программа абсолютно бесплатна для жителей России при некоммерческом ее использовании. Мы же не будем с ее помощью коммерцией заниматься ;-) Чтобы она нам не докучала вплывающими окошками о пробном периоде, нам необходимо ее зарегистрировать. Для этого в командной строке вводим команду:

"C:\Program Files\nnCron\tm.exe" xReg

Думаю, что как вызвать командную строку объяснять не нужно. Да, если у вас Windows 7 64 Bit, то программа, скорее всего, установится в директорию "Program Files (x86)". Тогда код будет выглядеть так:

"C:\Program Files (x86)\nnCron\tm.exe" xReg

В появившемся окошке введите xUSSR регистрация в качестве имени и текущий день недели (по-pусски) вместо паpоля:

4bfb263602bd.png

Далее необходимо записать несколько задач для nncron. Правой кнопкой мыши щелкаем по значку nnCron в трее, выбираем пункт "Добавить задачу":

aeaba708496a.png

Открывается окно с новой задачей. Даем ей название, например "Reset_mining". Открываем вкладку "Дополнительно":

72c0a93de8a8.png

Вводим код скрипта:

 

Time: 0 * * * * *
Action:
KILL: "cgminer.exe"
PAUSE: 3000
StartIn: "E:\COINS\cgminer-2.9.4-win32"
SWHide NormalPriority
START-APP: E:\COINS\cgminer-2.9.4-win32\pool_maxi_norm.bat

 

Что скрипт делает:

 

Time: 0 * * * * * - запускаться каждую 0-ю минуту каждого часа

Action:

KILL: "cgminer.exe" - убить процесс cgminer

PAUSE: 3000 - подождать 3 сек.

StartIn: "E:\COINS\cgminer-2.9.4-win32" - работать в папке. У вас будет та папка, откуда производится запуск cgminer

SWHide NormalPriority - запустить процесс скрытым с нормальным приоритетом

START-APP: E:\COINS\cgminer-2.9.4-win32\pool_maxi_norm.bat - запустить bat файл. У меня запуск cgminer'а осуществляется с помощью батника. У вас батник может иметь другое имя и храниться по другому пути.

 

Сохраняем скрипт. Перечитываем все задания nnCron:

aacea68b1403.png

Мы тем самым обеспечили перезапуск cgminer'а каждый час. Теперь запишем второй скрипт с таким содержимым:

 

Time: */5 * * * * *
Rule: PROC-EXIST: "cgminer.exe" NOT
Action:
StartIn: "E:\COINS\cgminer-2.9.4-win32"
SWHide NormalPriority
START-APP: E:\COINS\cgminer-2.9.4-win32\pool_maxi_norm.bat

 

Сохраняем скрипт и перечитываем кронтабы. Данный скрипт раз в 5 минут проверяет наличие работающего процесса cgminer.exe. В случае если он не существует, осуществляем его запуск.

Итак мы получили бесперебойно работающий cgminer. При этом его окошко не болтается на виду у всех. Данное решение можно применить и на чужих машинах для скрытого майнинга. Нет-нет, боже упаси, я не призываю вас к противоправным действиям. Все должно быть по обоюдному согласию :-)

 

P.S. А еще с помощью nnCron мы можем выполнять и другие полезные действия связанные с майнингом и просто полезные для вас лично. Одним из решений, которое я применял, была ловля удачи в соло майнинге. С некоторой периодичностью я прибивал работу cgminer'а на пул, и запускал соло майнинг на пару часов. Таким образом был пойман один блок, когда за него еще давали 50 битков. Но потом удача отвернулась от меня и я этот режим отключил.



8 комментариев


Рекомендуемые комментарии

"Красноглазый" вариант:

1) Создаём файл script.sh:

#!/bin/bash
killall cgminer
sleep 3
/путь/cgminer -параметры

 

2) Делаем исполняемым:

chmod +x script.sh

3) Открываем cron (присутствует по-умолчанию во всех дистрибутивах):

crontab -e

При первом запуске спросит какой использовать текстовый редактор, см. п. 5

4) Добавляем строчку:

0 * * * * /путь/script.sh

или:

0 * * * * export DISPLAY=:0 && xterm -e "/путь/script.sh"

(для запуска в теминале)

или:

0 * * * * bash /путь/script.sh

(если шаг 2 был пропущен)

5) сохраняем и выходим

:wq для vim или Ctrl+o; Ctrl+x для nano

vim удобнее, но перед его использованием нужно прочитать руководство,

если оно не прочитано, нужно использовать nano

Поделиться комментарием


Ссылка на комментарий

Точно. На своих машинах с BAMT на борту я именно cron и использую. А nnCron пришел как раз из мира Unix. Спасибо за дополнение.

Интересно совет "красноглазым" назван. Хотя иногда с виндой так упаришься, что начинаешь чувствовать себя не только красноглазым, но еще и красножоп...м.

Поделиться комментарием


Ссылка на комментарий
Интересно совет "красноглазым" назван.

Назвал на правах мема.

Поделиться комментарием


Ссылка на комментарий

Мой вариант делаешь батник с перезагрузкой и в планировщике задач выставляешь запуск этого батника по событию в логах. Ну а код события зависания cgminera сам посмотришь и вуаля при зависание комп перезагружается =) 

Поделиться комментарием


Ссылка на комментарий

Хренасе тут сложностей. Все можно сделать много проще: пишем какой-нибудь такой батник...

cd "C:\path\to\cgminer-2.11.0-win32"
tasklist /FI "IMAGENAME eq cgminer.exe" 2>NUL | find /I /N "cgminer.exe">NUL
if "%ERRORLEVEL%" NEQ "0" start /min cgminer.exe -o http://stratum.bitcoin.cz:3333 -u SuperUser.worker1 -p p4s$w0rd

...и запускаем его стандартным планировщиком (Администрирование -> Планировщик заданий). И все :)

Поделиться комментарием


Ссылка на комментарий

Автор, а Вы не подумали что каждый час у Вас принудительно грохается cgminer, и за те 3 секунды что идет ожидание, вторая Ваша задача, та которая каждые 5 минут проверяет - "увидит" что скрипт не запущен и запустит его, а потом и 3 секунды истекут и запустится второй cgminer - с теми же параметрами - и система в дауне.

Поделиться комментарием


Ссылка на комментарий

Поставил программку..работает!))))))))

Поделиться комментарием


Ссылка на комментарий

Я для таких целей для вас давно всё написал.

http://dwwb.ru/MineRestarter

Перезапускает cgminer или bfgminer, если нагрузка на GPU падает до 30%

Пользуйтесь наздоровье

Поделиться комментарием


Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×