LINUX.ORG.RU

Сообщения Serbis

 

Vim - неполная цветовая схема

Не на первой теме натыкаюсь на различные недокрасы в виме. Вот теперь такая вот красота Картинка. Собственно таблайн белый и дефолтный фон за пределами буфера. Как эту некрасивость можно починить?

 

Serbis
()

Какие накладные расходы для ОС несут блокированные потоки?

Ввиду отсутствия нормального акторного фреймворка под Rust, возникла крайне неодназначная по началу идея, которая со временем стала мне казаться довольно любопытной. std::thread + std::sync::mpsc = актор на выделенном потоке. В терминологии akka это актор на пиннед диспетчере. И собственно а почему бы и нет? По каналам сообщения идут в строгом порядке один за одним, поток обладает собственным состоянием, которое не может быть изменено вне хендлера сообщений. Он может реализовывать различные варианты поведения, заменяя их по факту приема сообщений.

Проблема возникает в следующем - акторов может быть очень много, потенциально тысячи. Очевидно что все их потоки будет 99% времени находится в состоянии ожидания и будут игнорироваться планировщиком. Но все же хочется понять, какие могут быть минусы у такого решения по части накладных расходов за огромное количество потоков?

 ,

Serbis
()

Ограничить память процесса JVM

Такой вот вопрос организовался. Java при запуске всегда запускается с резервом памяти намного больше размера хипа вм. При этом этот резерв я так понимаю определяется общим размером озу машины на котором стартует вм. Пример: есть микросервис, запускается с Xmx32M, ему для работы этого всегда хватает. У меня на компе процесс вм скушает около гига памяти (16гб озу). На сервере 250мб (2гб озу), на оранжевом пи 64мб (256мб озу). Очевидно что для нормальной работы, ему явно не требуется > 64мб памяти, но по каким-то причинам, он жрет все что дают.

Вопрос - как ограничить память процесса java?

 

Serbis
()

Rsync режет скорость сети

Столкнулся я с очень странным феноменом, который к сожалению не могу объяснить. В чем суть. Имеется VPS на Hetzner, к ней ведет openvpn туннель. Сервер является точкой выхода в интернет. Скорость работы интернета через туннель без каких либо срезов. Но вот если воспользоваться rsync начинаются чудеса. При передаче данных на сервер, скорость падает до 100кбит/c. И не только в rsync, а через туннель вообще. Т е если при работающем rysnc попробовать скажем прогнать speedtest, то он покажет те же 100кбит/с что и показывает rsync.

Как пользую сабж:

rsync --partial --progress -avzhe ssh sv_cfg-1.tar root@sro-root:/tmp/

Что это за чудеса такие?

P. S. sro-root это внутренний хост VPN сети.

 

Serbis
()

Получить от dns всю зону

Вопрос теоретического характера. Возможно ли получить от dns все RR зоны не указывая конкретный домен. Те получить например все А записи по всем доменам в зоне не зная имен конкретных доменов?

 

Serbis
()

Systemd старт сервиса только по факту запуска vpn

Имеется задача запускать сервис строго после инициализации vpn соединения. Последнее определяется появлением сетевого интерфейса tun0. Запускаемая сервисом программа биндится по ip tun0 и в случае если бинд не удался не завершает свою работу, а просто логгирует данный факт продолжая работу. А так как падения программы нет, systemd считает что сервис корректно стартанул. Очевидно что проблема решается в лоб оборачиванием запуска сервиса в скрипт, который выполнит его фактический запуск после обнаружения интерфейса. Вопрос - имеются ли у systemd свои средства решения подобной задачи дабы не городить скриптовый зоопарк?

 

Serbis
()

Оптимизация строковых констант в gcc

Вопрос к знатокам gcc. Есть такой вот листинг:

248       		return Executor_error(1, "-");
08004ee0:   ldr     r1, [pc, #32]   ; (0x8004f04 <Executor_cmd_gpio_w+92>)
08004ee2:   movs    r0, #1

271       			return Executor_error(2, "-");
08004f36:   ldr     r1, [pc, #24]   ; (0x8004f50 <Executor_cmd_gpio_r+72>)
08004f38:   movs    r0, #2
08004f3a:   bl      0x8004dce <Executor_error>
08004f3e:   b.n     0x8004f34 <Executor_cmd_gpio_r+44>
274       		return Executor_error(1, "-");
08004f40:   ldr     r1, [pc, #12]   ; (0x8004f50 <Executor_cmd_gpio_r+72>)
08004f42:   movs    r0, #1
Из коего следует, что константа "-" существует сразу в трех экземплярах [#32, #24, #12], в то время как числовая константа 1 имеет единичную ссылку #1.

Вопрос - можно ли заставить gcc, не плодить строки в таком количестве. Вопрос важен в части оптимизации размеров прошивок микроконтроллеров, где хотелось бы чаще использовать осмысленный текст в логах и других человекочитаемых местах, на данная особенность компиляции не дает для этого никакой разумной возможности.

P. S. Если я правильно трактую содержимое листинга

 ,

Serbis
()

SPI эмулятор

Очень требуется подключить одну железку по SPI к PC (через spidev), у которого как известно аппаратного SPI нема. Собственно эмулировать его я так понимаю его несложно, нужен просто модуль ядра, который создаст символьное устройство мимикрирующее под работу с spibus, а по факту шлющий данные в tty или usb порт. На конце которого весит мк с простой прошивкой, который собственно и реализует аппаратный spi.

Ну в общем я сомневаюсь что я первым до такой идеи дошел, наверняка уже кто-то что-то подобное делал, может кто знает готовые решения?

 ,

Serbis
()

Запуск скрипта от имени суперпользователя

Подскажите программу для реализации следующего. Есть скрипт, он должен запускаться от суперпользователя, так как выполняет некоторое привилегированное действие. Нужно что бы этот скрипт мог выполнить определенный пользователь от имени суперпользователя без ввода пароля и без прав на просмотр и редактирование самого скрипта. И понятно что только этот скрипт. Очевидно проблема решается написанием простой программы за час, но чудится мне что уже кто-то изобрел сей велосипед.

 ,

Serbis
()

Драйвер или демон?

Есть RaspberryPi к которому нужно подключить сложное устройство по spi. С этим устройством должны взаимодействовать несколько разных программ с пользовательского уровня. И есть два варианта контроллера - драйвер и демон. Драйвер очевидно управляется через пространство ядра, демон через доменный сокет.

Я вижу очень весомые преимущества демона: 1. Он работает со стандартным и очень удобным драйвером spi linux 2. Он имеет очень гибко настраиваемый интерфейс контроля в виде сокета. 3. В случае критических ошибок в коде демона, система останется работоспособной, а с драйвером все рухнет в тартарары.

Преимущества демона для меня очевидны. Я писал такие программы много раз и вполне успешно. Ну суть в том, что написание драйверов это для меня своего рода личный возов как для программиста (так как я это никогда не делал). Но поскольку задача вполне себе рабочая, я пытаюсь найти рациональные аргументы за написание именно драйвера. Вопрос - какие есть плюсы у драйвера относительно демона в срезе данной задачи?

 ,

Serbis
()

Отваливает демон openvpn при переходе ноута в ждущий режим

Есть постоянное openvpn соединение, при переходе/выходе из/в гибернации демон схватывает fatal error по причине пропадающего сетевого интерфейса. Приходится совершать systemctl restart. По причине того что компом пользуются люди которых один вид терминала приводит в ужас, хотелось бы автоматизировать процесс перезапуска демона. Не очень понятно куда класть скрипт делающий сие действие.

Ubuntu 16.04

 , ,

Serbis
()

Безопасность vpn сервера на арендуемом vds

Есть openvpn сервер развернутый на некотором vds хостинге. Вопрос - насколько широки возможности оператора данного хостинга для отслеживания содержимого проходящих через данный сервер vpn пакетов?

Рассматриваемая ситуация вида - к хостеру пришли из фсб и попросили...

Какие существуют правила для создания vpn сетей который не подвержены ситуации - фсб попросило?

 , ,

Serbis
()

Организация видеомоста с ip камеры через внутреннюю сеть

В общем есть такая задача, наладить передачу видеопотока c ip камеры во внешний мир. Сама камера находится во внутренней сети без внешнего ip адреса. В этой же сети находится raspbery pi в качестве сервера. Ну и собственно полноценный сервер в датацентре с выделенным ip. Задача - малина должна взять видеопоток с камеры и перенаправить его на удаленный сервер.

Какими средствами это можно решить? Я так понимаю что тут должен участвовать ffmpeg server. Только я вот не очень понимаю с какой стороны и как.

 

Serbis
()

Пройти авторизацию в вк без GUI

Ну собственно суть вопроса в заголовке. Нужно пройти браузерную авторизацию в вк, на сервере на котором нет gui. И сделать это нужно по возможности автоматически. Таким образом штуки вроде xvfb + vnc не прокатывают. ApacheHttpClient + Java тоже не катит, так как вк отлавливает сей факт шлет несчастную программу куда подальше. Так же консольные браузеры летят в помойку, так как вк пинает их что не подходят они для него (по крайне мере так было с Links).

Какие есть идея для решения данной задачи?

 

Serbis
()

Minicom VCP - отправляет по одному символу

Помогите разобраться миникомом. Суть проблемы такая, есть самодельная железка с USB в качестве VCP. Работает нормально, подключается как /dev/ttyACM1. Написал echo -e -n «abcd» > /dev/ttyACM1, на устройстве получил abcd. Потом открыл миником, и обнаружил что он отправляет все данные посимвольно, т. е. после каждого нажатия клавиши на клавиатуре идет отправка, поэтому на другом конце я получаю не abcd а a, b, с и d. Никак не могу понять в чем проблема, то ли я с драйвером где-то напортачил, то ли миником нужно как-то нормально настроить.

Ubuntu 16.04 Minicom 2.7

 , ,

Serbis
()

Запретить выход в сеть вне VPN

Есть система, которая должна выходить в сеть только через vpn. В качестве обвязки применяется openvpn. Вопрос - как запретить выход в сеть вне vpn? Написать скрипт с автозапуском в фоне и автозаполненинием логина/пароля, не рассматривается по вопросам безопасности.

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

Ubuntu 16.04

 , ,

Serbis
()

Bash авторекконект к вафле

Имеется левая тд со слабым сигналом, из-за высокой загрузки временами происходит дисконнект, а гуя не умеет делать реконнект. Как подключиться к фавле в ручную я предстваляю, а вот как отловить момент дисконнекта? Помогите со скриптом.

 , ,

Serbis
()

vim и регулярки

Так, перефразирую свой вопрос. Мне нужно при помощи vim и регулярных выражений найти в тексте первый дефис и заменить его. По условиям поиска в выборку попадают лишние данные. Пример: 020805-Логопедия По условию выражения d{2,8}[-][А-ЯA-Z] происходит выборка 020805-Л, но мне нужно захватить только дефис. В перловых выражениях присутствует выражение (?=blablalba), но в vim такое не проходит. Суть в том что мне нужно решить элементарную задачу, а решения нигде не могу найти, хоть ручную выборку на питоне пиши!

 , ,

Serbis
()

Kate регэксп просмотр назад

Собственно в редакторе kate не пашет регэксп (?<=\d{2,8})[-](?=[А-ЯA-Z]) Суть - Найти дефис разделяющий два лексемы 04050101-Развлекательные программы

Не работает конкретно просмотр назад (?<=\d{2,8}) . В чем тонкость применения такого оборота в kate?

 ,

Serbis
()

Вывести в терминал hex

Вот есть такая страшная команда sudo dd if=/dev/sda of=/dev/stdout bs=512c count=1 , я думаю всем понятно что она делает, но вывод в терминале откровенно говоря нечитабилен, как вывести в терминал hex?

 

Serbis
()

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