Linux Ready | DevOps
9.81K subscribers
871 photos
47 videos
366 links
Авторский канал по разработке на Linux.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/linux_ready
Download Telegram
🌅 На берегу Онежского озера в Карелии — бутик-отель «Заонежье»

Здания из северного дерева и лемеха гармонично вписаны в ландшафт Русского Севера. Для гостей созданы 13 видовых номеров и 4 гостевых дома с каминами, ресторан «Руна» с локальной кухней, пирс, панорамный зал и экотропы.

Любители активного отдыха могут отправиться на Кижи, порыбачить, выйти на каяке или катере, прокатиться на велосипеде по окрестностям или покорить местные пейзажи на квадроцикле.

🏆 Проект отмечен премиями LIV Hospitality Design Awards, Archiwood, ADD Awards и Rethinking The Future Awards.

Первозданная природа и настоящий комфорт в одном месте.

🔗 zaonezhie.com · Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👎6
Смотрим, какие библиотеки реально отображены в адресное пространство процесса!

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

Если нужен точный ответ, что уже замаплено в память, используем /proc.

Сначала находим PID процесса:
pgrep -a python


Допустим, это 1234. Теперь смотрим, какие shared objects отображены в его адресное пространство:
grep '\.so' /proc/1234/maps


Что здесь важно: /proc/<pid>/maps — карта памяти процесса; каждая строка — отдельный участок памяти; если в строке есть путь к .so, значит есть файловый маппинг этого объекта.

Пример:
7f2c1a000000-7f2c1a200000 r-xp ... /usr/lib/x86_64-linux-gnu/libssl.so.1.1


Это означает, что в адресном пространстве процесса есть маппинг этой версии libssl (и, с высокой вероятностью, она используется процессом).

Если нужен список без дублей:
grep '\.so' /proc/1234/maps | awk '{print $6}' | sort -u


Практический кейс — конфликт версий после обновления: систему обновили, новая библиотека уже лежит на диске, а процесс всё ещё держит старую версию в памяти.

Проверить можно так:
ls -l /proc/1234/map_files/


Если у файла есть пометка (deleted), это сильный сигнал: файл на диске уже удалён или заменён, но процесс продолжает использовать старый inode через существующий маппинг.

🔥 Что важно помнить: изменения на диске не влияют на уже загруженные библиотеки в работающем процессе, после обновления библиотек сервисы обычно нужно перезапускать, доступ к /proc/<pid> и особенно map_files может быть ограничен правами.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥108
🐱 Полезную статью нашёл на Хабре: «Чёрное окошко Linux: погружение в подсистему TTY»!

В этой статье:
• Подробно разбирается, что на самом деле скрывается за терминалом в Linux;
• Объясняется разница между консолью, терминалом, shell, TTY и эмуляторами;
• Показано, как процессы взаимодействуют с системой через stdin/stdout/stderr и файловые дескрипторы, и какую роль в этом играет ядро.


🔊 Продолжайте читать на Habr!


🚪 Linux Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍187🔥7🤝1