Верстакфорум практиков
рекламаiprazon: приватные серверные адреса IPv4 и SOCKS5, безлимитный трафик, бесплатный тест до 2 часов
ФорумСофт и программы

Оболочка с кнопками или консоль: что выбирают на длинных прогонах

Кирилл Бакин
Кирилл Бакин
Знаток
сообщений 1560
с апр
22 августа, 17:07первое сообщение

Прогон идёт четырнадцать часов. Держу его в оболочке с кнопками, потому что там видно табличку с прогрессом и можно нажать паузу.

Дважды за месяц терял всё под утро: разорвалось удалённое подключение, окно закрылось вместе с сеансом, прогон умер на одиннадцатом часу. Обидно до зубовного скрежета.

Народ, кто гоняет длинное, вы на чём сидите? Хочется и прогресс видеть, и не зависеть от окна.

gremlin_dv
gremlin_dv
Знаток
сообщений 1840
с мар
1 января, 08:24#2

Сидим в консоли под tmux, и обрыв связи перестаёт что-либо значить: сеанс живёт на сервере сам по себе, вы к нему просто подключаетесь заново.

tmux new -s progon
./start.sh 2>&1 | tee -a /var/log/progon/$(date +%m%d).log
# отцепиться: Ctrl+b, затем d
tmux attach -t progon

Прогресс никуда не девается, его надо только сделать читаемым. Я вывожу в лог одну строку на каждые пятьсот обработанных: сколько сделано, сколько отказов, темп за последнюю минуту. Дальше смотрю откуда угодно, хоть с телефона:

tail -f /var/log/progon/0417.log | grep -E 'итог|отказ'

Табличка с кнопками красивее, но она рисуется в памяти той же машины и на миллионе строк начинает подтормаживать сама себя. Видел, как оболочка отъедала гигабайт на отрисовку списка, по которому никто не смотрел.

три монитора и ни одного свободного
Света Панина
Света Панина
Новичок
сообщений 160
с мар, второй сезон
8 июня, 11:41#3

а под виндой tmux же нет? у меня всё на ней

Кирилл Бакин
Кирилл Бакин
Знаток
сообщений 1560
с апр
15 ноября, 14:58#4
gremlin_dv: сеанс живёт на сервере сам по себе

Про это я знал теоретически, а связать со своей бедой не догадался. Прогон умирал ровно из-за привязки к окну.

kvadrat_ru
kvadrat_ru
Участник
сообщений 855
с июл
22 апреля, 17:15#5

Света Панина, под Windows работает тот же приём с другой стороны: программа вешается службой и живёт без сеанса. Берёте nssm или готовую обёртку, и окно перестаёт быть условием работы.

nssm install ProgonNoch "C:\progon\start.cmd"
nssm set ProgonNoch AppStdout C:\progon\log\out.log
nssm set ProgonNoch AppStderr C:\progon\log\err.log
nssm set ProgonNoch AppRotateFiles 1
nssm start ProgonNoch

Оболочка с кнопками так не умеет по своей природе: ей нужен рабочий стол. Если совсем без неё никак, запускайте её в отдельном сеансе, который не рвётся при выходе, и смотрите через подключение к тому же сеансу.

Артём Пчёлкин
Артём Пчёлкин
Ветеран
сообщений 2310
с янв
1 сентября, 08:32#6

Разделяю задачи по длине. Разовое на полчаса гоняю мышкой, там правда быстрее глазами.

Всё, что дольше двух часов, уходит в консоль, потому что мне важнее история: лог остаётся, его можно сравнить с прошлым прогоном и увидеть, где темп просел. Из окна с кнопками наружу обычно не достанешь ничего, кроме скриншота.

Кирилл Бакин
Кирилл Бакин
Знаток
сообщений 1560
с апр
8 февраля, 11:49#7

Перенёс ночной прогон в tmux, строку прогресса добавил в лог. Вчера специально закрыл ноутбук на шестом часу, утром подключился, всё крутится.

Оболочку оставил под мелкие разовые задачи, тут спорить не с чем.