Как я могу связаться с сокетом домена Unix через оболочку на Debian, Сжимают?

Процессы непривилегированного режима могут использовать Межпроцессное взаимодействие (IPC) для общений друг с другом, самый быстрый метод достижения, это при помощи страниц общей памяти (shmpages).
Это происходит, например, если banshee играет музыку и vlc играет видео, оба процесса должны получить доступ pulseaudio производить некоторый звук.

Попытайтесь узнать больше о конфигурации общей памяти и использовании с некоторыми следующими командами:

Отобразите конфигурацию общей памяти:

sysctl kernel.shm{max,all,mni}

По умолчанию (Linux 2.6) это должно произвести:

kernel.shmmax = 33554432
kernel.shmall = 2097152
kernel.shmmni = 4096

shmmni максимальное количество позволенных сегментов общей памяти, shmmax позволенный размер сегмента общей памяти (32 МБ) и shmall максимальный общий размер всех сегментов (отображенный как страницы, переводит в 8 ГБ),

В настоящее время используемая общая память:

grep Shmem /proc/meminfo

Если включено распределением:

ls -l /dev/shm

ipcs большой инструмент должен узнать больше об использовании IPC:

ipcs -m 

произведет использование общей памяти, Вы видите выделенные сегменты с соответствующими размерами.

ipcs -m -i 

шоу больше информации об указанном сегменте включая PID процесса, создающего (cpid) и последнего (lpid) использование его.

ipcrm может удалить сегменты общей памяти (но знать, что это, только удалены, если никакие другие процессы не присоединены к ним, см. nattach столбец в ipcs -m).

ipcrm -m 

Разряжение общей памяти могло быть программой в большой степени с помощью большого количества общей памяти, программа, которая не отсоединяет выделенные сегменты правильно, измененный sysctl значения...

Это не конкретный Linux и также относится (большинство) к системам UNIX (общая память сначала появилась в CB UNIX).

100
18.12.2011, 23:59
5 ответов

С netcat-openbsd, существует a -U опция. Если у Вас нет его, Вы, вероятно, имеете netcat-traditional установленный вместо этого; я предложил бы переключиться.

Команда Example: nc -U /var/run/socket

74
27.01.2020, 19:30

Можно использовать socat на Debian. Устанавливать его:

# apt-get install socat
15
27.01.2020, 19:30
  • 1
    Это выглядит довольно хорошим. Я, кажется, не имею socat установленный на моем сервере, но это, конечно, доступно: packages.debian.org/squeeze/socat –  Paul D. Waite 14.12.2011, 00:30

С socat ('двунаправленное реле данных между двумя каналами передачи данных'), можно соединиться с сокетом домена Unix как это:

$ socat - UNIX-CONNECT:/tmp/memcached.sock
96
27.01.2020, 19:30

netcat-openbsd поддерживает подключение к сокетам UNIX-домена. Используя это, вы можете подключиться либо к сокету потока домена UNIX , либо к сокету дейтаграммы домена UNIX , и поэтому вы должны сообщить тип сокета netcat.

например, файл / dev / log в Linux является сокетом датаграммы домена UNIX , поэтому nc -U / dev / log победил » t работа . Вместо этого используйте nc -uU / dev / log . Использование -u вместе с -U сообщает netcat, что это сокет дейтаграммы домена UNIX.

nc -U /tmp/socket  #Connect to UNIX-domain stream socket
nc -uU /tmp/socket #Connect to UNIX-domain datagram socket


Аналогичным образом при использовании socat используйте параметр UNIX-CLIENT. Используя эту опцию, вы можете подключиться как к сокетам потока домена UNIX , так и к сокетам дейтаграммы домена UNIX . На его странице руководства (man socat) сказано: « Сначала он пытается подключиться и, если это не удается, предполагает, что это сокет дейтаграммы , таким образом поддерживая оба типа » .

socat - UNIX-CLIENT:/dev/socket #connect to UNIX-domain socket, irrespective of its type
21
27.01.2020, 19:30

Если вы работаете в системе, в которой установлен только busybox, может показаться, что она не поддерживает сокеты домена unix (опция -Uне существует ), но я обнаружил, что работает следующее:

$ echo "stats slabs" | nc local:/tmp/memcached.sock
STAT active_slabs 0
STAT total_malloced 0
END

Это может быть очень полезно для проверки работоспособности альпийских контейнеров.

11
27.01.2020, 19:30

Теги

Похожие вопросы