Начну в порядке от самой простой реализации до самой сложной.
Архіви категорій: Linux
ERROR Error while accepting connection (kafka.network.Acceptor)
Да, именно с таким сообщением начала падать kafka спустя некоторое время после запуска. Включение режима debug немного увеличило “понятность”
ERROR Error while accepting connection (kafka.network.Acceptor)
java.net.SocketException: Invalid argument
at sun.nio.ch.Net.setIntOption0(Native Method)
at sun.nio.ch.Net.setSocketOption(Net.java:341)
at sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:190)
at sun.nio.ch.SocketAdaptor.setBooleanOption(SocketAdaptor.java:271)
at sun.nio.ch.SocketAdaptor.setTcpNoDelay(SocketAdaptor.java:306)
at kafka.network.Acceptor.accept(SocketServer.scala:654)
at kafka.network.Acceptor.run(SocketServer.scala:579)
at java.lang.Thread.run(Thread.java:748)
Запуск скрипта (не демона) как сервис
Address Space Layout Randomization (ASLR)
ASLR (англ. address space layout randomization — «рандомизация размещения адресного пространства») — технология, применяемая в операционных системах, при использовании которой случайным образом изменяется расположение в адресном пространстве процесса важных структур данных, а именно образов исполняемого файла, подгружаемых библиотек, кучи и стека.
[Linux] Разрешаем vpn pptp через nat для локальной сети
Как оказывается, просто включить NAT недостаточно. Более того, недостаточно даже подключить helper через sysctl:
net.netfilter.nf_conntrack_helper=1
В сети пишут, что нужно подгрузить модули (некоторые ещё уточняют, что это нужно было до версии 8.Х включитель, а с 9-ой достаточно просто подключить helper через sysctl, но как оказывается, недостаточно)
[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.
[linux] Слушаем “не свои” интерфейсы
# sysctl net.ipv4.ip_nonlocal_bind=1
Данная опция позволяет bind на не свои IP-адреса.
Где используется:
- LoadBalancing (keepalived)
- тестирование
[docker] Попасть в контейнер через /proc
Через /proc/<pid>/root можно попасть в root контейнера. Где pid берётся из ps | efc | grep docker