Архив рубрики: Linux

Nginx: listen socket

Ниже будут выдержки цитат из рассылки nginx, которые объясняют простые вещи при открытии/переоткрытии сокета не только в случае nginx’a, а и некоторых общих случаях.

Читать далее

eBPF: трассируем приложения

The Berkeley Packet Filter (BPF) started (article 1992) as a special-purpose virtual machine (register based filter evaluator) for filtering network packets, best known for its use in tcpdump. It is documented in the kernel tree, in the first part of: Documentation/networking/filter.txt

The extended BPF (eBPF) variant has become a universal in-kernel virtual machine, that has hooks all over the kernel. The eBPF instruction set is quite different, see description in section “BPF kernel internals” of Documentation/networking/filter.txt or look at this presentation by Alexei.

eBPF enables programmers to write code which gets executed in kernel space in a more secure and restricted environment. Yet this environment enables them to create tools which otherwise would require writing a new kernel module.

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

https://eax.me/bcc-ebpf/
https://habr.com/ru/post/435142/
https://habr.com/ru/company/otus/blog/436528/

cron, run-parts не выполняют скрипты с расширением

Причём не только с расширением «.sh», а вообще с любым. Это поведение по умолчанию и при этом задокументировано! Вот выдержка из man’a:

If neither the —lsbsysinit option nor the —regex option is given then the names must consist entirely of upper and lower case letters, digits, underscores, and hyphens.

Установка зависимостей для dpkg-пакета

Нашёл на просторах сети. Оставлю как есть:

dpkg doesn’not have dependency support. You have two choises;

1- use gdebi with

$ sudo apt-get install gdebi-core

gdebi install deb package and their dependency.

$ sudo gdebi package.deb

2- After sudo dpkg -i *.deb you should run,

$ sudo apt-get -f install

[debian] subprocess installed post-installation script returned error exit status 127

Она появляется когда post-script не смог отработать. Что бы избавиться от неё, нужно посмотреть внимательно на сам скрипт:

/var/lib/dpkg/info/[package_name].postinst

Что с ним делать — решать вам. Можно просто почистить и оставить там exit 0, либо отдебажить и понять на чём он валиться.

Гарантированный запуск единичной копии скрипта

Принцип ее работы прост: для каждого процесса она создает файл и вешает на него lock. Как только процесс завершается, лок пропадает. Лок также пропадает в случае внезапной смерти процесса, и нет необходимости проверять pid на существование или делать другие телодвижения. Если процесс запускается повторно, а лок-файл еще не освободился, работа скрипта прерывается и выдается сообщение в STDERR. Читать далее

pidgin: ssl handshake failed

Или на русском: «ssl рукопожатие не удалось». Проблема заключается в том, что в новых версиях libnss3 не принимаются самоподписные сертификаты (selfsigned). На моей kubuntu 16 пришлось даунгрейдить 4 пакета до версии 3.15.4. Только после этого всё заработало. И так, вот эти пакеты:

ii  libnss3:amd64                                   2:3.15.4-1ubuntu7
ii  libnss3-1d:amd64                                2:3.15.4-1ubuntu7
ii  libnss3-nssdb                                   2:3.15.4-1ubuntu7
ii  libnss3-tools                                   3.15.4-0ubuntu0.12.04.3

Читать далее