LINUX.ORG.RU

Сообщения gobot

 

Ставить ли nginx или наружу node?

Форум — Admin

Нужно ли ставить поверх бэка nginx или голой жопой node express выставлять?

Давно надоело корявые конфиги правть, где тупо нет if/else. Да и вообще, для чего он? Ну модульки там всякие типа connlimit, но это и через iptables можно...что еще...ну логи...что еще может nginx что не может node/http/https модуль?

 , ,

gobot
()

А чем микросервис отличается от функции?

Форум — Development

Нужно ли мне создавать микросервисы, если я делаю все один?

И еще вопросик по кодовой базе: часто одни и те же функции используются. Нужно в одной папочке все микросервисы хранить? А если по сети взаимодействуют, то нужно каждый микросервис обновлять по отдельности? И что еще получается нужен брокер сообщений или лучше на каждом МС поднимать свой http сервер(имхо так проще)?

 

gobot
()

http сервер на ноде

Форум — Development

Проблема в завершении запросов по таймауту Service Unavailable 503. В nginx просто решалось - запрос завершился - убился дочерний процесс со всеми потрохами (запросы к БД, сетевые, ресурсы и т. д.). В ноде, конкретнее в express, так не получится, там не создается отдельный процесс для каждого запроса. Промайсы тоже тривиально не отменяются, это нужно в каждом запросы пасти статус request\response и обрабатывать - геморойно, не вариант. Можно отменить сам запрос и отдать клиенту ошибку, но сам запрос асинхронный на сервере будет продолжать работу и после того как он просрется - выдаст ответ на завершенный http-запрос - в пустоту - зря получается пахал столько время

Варианты:

* Забить, но завершать сам http-запрос

* Забить полностью, не завершать http-запрос, не устанавливать таймауты и делегировать вопросы по времени каждому отдельному обработчику запросов. Тут опасаюсь ошибок в самих обработчиках, где-то может просмотришь, и будет он вечно висеть, накапливаться со временем, тем самым будет утечка памяти

* запускать в отдельном процессе каждый http запрос. Вариант интересный, но не встречал реализаций

Что посоветуете?

 , , , ,

gobot
()

Плюсы докера

Форум — Admin

В чем плюсы докера? Создать образ, нашинковать его барахлом уже настроенным (nginx, mongo, redis в моем случае) или ставить отдельно все? Удобно, если сервер новый настраивать, быстро... а если не так часто меняются то... Как и для чего вы его используете?

 

gobot
()

Анимированный WebP resize

Форум — Web-development

Гуглил. Все схемы кривые, по сути нельзя, по факту тоже, по понятиям вроде тоже нельзя. Не тривиально. Но может есть выход?

Там же по сути кадры идут, каждый кадр картинка или нет? Или там как в видео какие то промежуточные bi\p кадры, замуты? Кто знаком с форматом?

 , ,

gobot
()

Хром не открывает сайт

Форум — Admin

Хромеподобные браузеры(Opera, Chrome) внезапно перестали открывать 1 сайт (мой). Через FF, wget, другие программы нормально, HTTPS запрос отдает ответ и страницу

* ERR_TIMED_OUT
* Через VPN открывает
* После перезагрузки Windows некоторое время сайт открывается, но потом снова недоступен
* DNS на cloudflare, но до него не доходит
* Прокси смотрел - отключено
* chrome://net-internals/#dns - сбрасывал
* ping идет на cloudflare адрес - норм
* Никаких антивирей нет, ничего дополнительного не устанавливал

Windows 10 Pro 22H2

UDP
В настройках cloudflare нужно отключить TLS 1.3. ~РКН~

 , , ,

gobot
()

Перезагружается сервис

Форум — Admin

Самопроизвольно начал перезагружаться сервис через systemd. В логах просто «process got event SIGTERM 15» (там у меня обработчик стоит в коде на process.on() - логирует)

Stopping My server...
Stopped My server.
Started My server.

Никаких ошибок нет. С чего он его перезагружает?

Сам unit

[Unit]
Description=My server

[Service]
Type=simple
StandardOutput=journal
ExecStart=/home/admin/server.js --port 8080 --bind-address localhost
KillMode=process
Restart=on-failure

[Install]
WantedBy=default.target


Ubuntu 22

 ,

gobot
()

Реверс инженеринг РиМ 040.03

Форум — Development

https://www.ao-rim.ru/cat_cnt_dd04003

Как можно сделай свой пульт? Заводской очень дубовый и хотелось бы графики строить и выводить иефу на монитор большой

Там RF канал, вроде не шифруется. С чего так сказать начать? Есть опыт с Arduino...

 

gobot
()

Простой вопросик по сборке vite

Форум — Web-development

такой конфиг

main.html
<html>
<head>
<script type="text/javascript" src="/src/error-handler.js"></script>
<script type="module" src="/src/main.js"></script>
</head>
</html>

rollupOptions: {
  input: {    
    app: "./apps/main.html"
  }
}



error-handler.js не трансформируется, не копируется в outDir. Если добавить type=module то он впихивается в bunlde, что мне не нужно. Хочу его отделить

 ,

gobot
()

Убогость qt creator

Форум — Development

Нет функции в Open documents сортировки открытых файлов (хотелось бы не по алфавиту, а по последнему использованию как в нормальных IDE)

Убогая сборка android через бинарники, в которых зашита конфигурация и ее никак не изменить

Нет табов: это вообще дичь в 21 веке

Это пока все, наблюдения продолжаются...

 ,

gobot
()

systemd цвета

Форум — Admin

Создал unit, пишу в stderr

daemon.js

#!/usr/bin/env node
process.stderr.write("ERROR\n");
process.stdout.write("OUT\n");



Смотрю
journalctl --user -f -u daemon


Не вижу цветов, не вижу с какого потока пришло. Неужели так все убого?

 ,

gobot
()

Знак тильды ~ откуда берется

Форум — Admin

Столкнулся с проблемкой, скрипт /bin/sh не «видит» тильду - home dir. Сам скрипт /usr/bin/ssh-copy-id

Запускаю так: supervisord (user=admin) -> test.js

Сам код на node:

execSync("sshpass -p "pass" ssh-copy-id bla bla", {shell: "/bin/bash"})


Если запускать напрямую в консоле через bash этот скрипт test.js, то нормально. Если через supervosord, то `/usr/bin/ssh-copy-id` - пишет ошибку «mktemp: failed to create directory via template ‘~/.ssh/ssh-copy-id.XXXXXXXXXX’»

Залез в исходники /usr/bin/ssh-copy-id, дописал проверочную строчку:
ls -la ~
directory ls: cannot access '~':


Если я напрямую в script.js пишу и запускаю также через supervisord
execSync("mktemp -d ~/.ssh/ssh-copy-id.XXXXXXXXXX", {
    shell: "/bin/bash"
})

то тоже нормально, дира создается в папке /home/admin. Не пойму в чем затык?

Что за херня?

 , , ,

gobot
()

Зачем нужен sudo?

Форум — Admin

Во многих конфигуруциях/убунту, отключен рут доступ через ssh - заходишь под юзером и потом либо su без пароля, либо sudo с тем же паролем что и у юзера. В чем смысл защиты? Защита от дыр в самом ssh? Сам всегда включаю рут на серверах(дебиан). Все nginx etc под другими пользователями.

 , ,

gobot
()

Вывод команды дополняется \r\n

Форум — Admin

Столкнулся с таким казусом, что через ssh с подключенным TTY каждая новая строка вывода консольной команды дополняется \r\n вместо просто \n. Если заходить без TTY, то норм. Использую это в NODE, пакет node-ssh (он использует SSH2). Там в конфигах почитал есть параметр TTY: Pseudo-TTY settings, в котором есть какие то Terminal Modes ну и табличка с их описанием. Пока не пойму в ту ли я сторону копаю и какие флаги можно установить

А, и как посмотреть текущие MODES в TTY?

 ,

gobot
()

Артефакты при записи с IPTV камеры

Форум — Development

Записываю rtsp стрим с IP камеры, но в выходном файле присутствует зеленая полоса внизу где то 25% от height.

ffmpeg -rtsp_transport udp - "rtsp://admin:pass@ip:554/live" -vcodec copy -acodec copy cam.mp4


Какие эксперименты были:


  • Если смотреть через ffplay - нормально
  • Если смотреть через VLC - нормально
  • Если смотреть через PotPlayer - нормально
  • Если ffmpeg запустить запись с домашнего компа - полоса появляется на пару сек и исчезает


  • Пробовал с 4 разных серверов (Европа, Армения)

  • Если rtsp_transport tcp - нормально, НО идет какое то «торможение», например махнешь рукой 5 раз, а на видео увидешь как будто 1 раз, типа FPS низкий
  • Если камера переходит в ночной режим (там подсветка и ч\б изображение), то полосы нет. Приходит рассвет и снова появляется ЗЕЛЕНАЯ падла полоса
  • FFMPEG самый последний билд 7.0.2-static
  • Пробовал с разных серверов, грешил на сеть
  • Если запускать на домашнем компе ffmpeg (win10), то полоса появляется но быстро пропадает, а на серверах постоянно
  • Пробовал перекодировать через libx264
  • Пробовал без звука (-an)
  • Пробовал в другой формат сохранять - mkv
  • -reset_timestamps 1
  • Ещё пробовал уже кучу всяких шаманских ключиков изгугленных - ничего не помогает, единственное чего удалось добиться - вместо зеленой полосы - серая была ))



Скрин видео
https://prnt.sc/PQaTcoRxk7Nt

 , ,

gobot
()

Грохнул папку ./home

Форум — Admin

Со всеми потрохами, ей было 6 лет, как и серверу у которого uptime такой же. Просто дико rm -rf / home...

 ,

gobot
()

Подскажите почему не работает

Форум — Admin
bash -c  "function getppid { echo "xxx=$1"; }; getppid $$;"



$1 - пусто. Если создать файл xxx.sh запустить его, то нормально

 

gobot
()

Как автоматически завершить все процессы после отключения ssh

Форум — Admin

Выполнил команду через ssh, отключился от сервера - команда завершилась. Как сделать такое?

Как я могу находясь в ssh убить все процессы, созданные конкретным подключением? Допустим у меня 3 подключения и в одном я хочу убить все процессы, а в других не трогать ничего

Все изгуглил, думал как то по простому можно сделать, приглось писать такой скрипт, который убивает все процессы порожденные ssh сессией. Смысл такой: ищется первый родительский процесс под названием ssh - получаю его PID, далее получаю все его дочерние PIDы - и их убиваю. Как вам такой подход? Пойдет или все таки можно более лаконично сделать. Смотрел pgrep - там можно убить по определенному tty, но он в моем случае не создается. Как иначе идентифицировать процессы принадлежащие конкретной ssh сессии по не понять

#!/bin/bash

function getppid() {
  echo `ps -o ppid=  -p $1;`
}
ppid=$$

userself=`whoami`
my_sshd=""
while [ "$ppid" != "" ] && [ "$ppid" != "0" ]
do
  ppid=`ps -o ppid=  -p $ppid;`
  if [ $ppid == "0" ]; then
      break
  fi

  info=`ps -o comm= -o user= -p $ppid;`
  comm=`echo $info | cut -d" " -f1`
  user=`echo $info | cut -d" " -f2`


  if [ $userself == $user ] && [ $comm == "sshd" ] ; then
    echo "my ssh: $info"
    my_sshd=$ppid;
    break;
  fi

done

if [ "$my_sshd" != "" ]; then
  pstree  -p $my_sshd

  kill_pids=`pstree -pc $my_sshd | grep -iEo '([0-9]+)' | paste -sd " " -`

  kill_pids="${kill_pids/$$/""}"
  kill_pids="${kill_pids/$my_sshd/""}"
  #kill_pids=`pgrep -d " " --parent $my_sshd`

  if [ "$kill_pids" != "" ]; then
    echo "killing pids...$kill_pids"
    kill $kill_pids 2>/dev/null
  else
    echo "nothing kill..."
  fi

  sleep 0.1

else
  echo "my ssh session not found"
  exit 1
fi

 

gobot
()

Выполнения бинаря из памяти

Форум — Development

В nodejs есть фича - создания бинаря из скрипта, а также в этот бинарь можно втюхать другой бинарь, ну и вообще любые assets. В самом коде после компиляции я получаю этот «втюханый» банарь в виде ArrayBuffer - короче в памяти он. Как мне его запустить собственно и получить результат? Сохранять на диск и выполнять через spawn это понятно (но теряется single-executable, а хочется чтобы красиво было, хоть и файлик раздуется до 200 мб - но что в наше время эти 200 мегов), какие другие варианты?

 nodejs

gobot
()

Лагает тунель

Форум — Admin

Поднял wireguard через amnezia, работало шикарно, но вчера начались лаги, потери пакетов большие. С чего начать, может какие то буфера переполняются? Бегло посмотрел - нет кучи соединений, проц не нагружен, сеть 10Gbps. СпидТест показывает 30bmps через тунель, правда часто Socker Error. Куда смотреть, с чего начать? Сам хост пингуется хорошо.

Через другой тунель на этом же компе, но через другой сервер - работает хорошо


UPD

Перезагрузил docker container - проблема исчезла (

 , ,

gobot
()

RSS подписка на новые темы