Консольные программы для работы с ipc функциями

Наверняка после обзора очередей, сигналов, общей памяти и семафоров, появляется особая нужда в быстрых системных инструментах.

Так как эти функции из php только транслируются на уровень ядра системы, поэтому многие инструменты уже разработаны и служат системным программистам верой и правдой уже много лет :-)

sysctl

С помощью этой утилиты можно просмотреть и отредактировать некоторые параметры системы.

Например:

u% sudo sysctl -a | grep queue
error: permission denied on key 'vm.compact_memory'
error: "Invalid argument" reading key "fs.binfmt_misc.register"
fs.inotify.max_queued_events = 16384
fs.mqueue.queues_max = 256
fs.mqueue.msg_max = 10
fs.mqueue.msgsize_max = 8192
error: permission denied on key 'net.ipv4.route.flush'
net.core.netdev_tstamp_prequeue = 1
error: permission denied on key 'net.ipv6.route.flush'

Или увеличить количество системных очередей
sysctl -w mqueue.queues_max=512

Параметры устанавливаются под пользователем root, и действуют до перезагрузки.

sysctl -a выводит список всех доступных параметров
sysctl -w переменная=значение установка новых значений

Подробнее в википедии

ipcs

ipcs выводит информацию о ipc данных в памяти. Т.е. о семафорах, очередях и сигналах.

u% ipcs -a

------ Сегменты совм. исп. памяти --------
ключ   shmid      владелец права байты nattch     состояние
0x00000000 65536      ukko       600        393216     2          назначение       
0x00000000 98305      ukko       600        393216     2          назначение       

------ Массивы семафоров --------
ключ   semid      владелец права nsems     
0xcbc384f8 0          ukko       600        1         

------ Очереди сообщений --------
ключ   msqid      владелец права исп. байты сообщения

ipcrm

ipcrm удаляет данные которые мы подсмотрели с помощью ipcs, например:

ipcrm -s 0 удаляет сигнал с идентификатором 0
ipcrm -Q -1 удаляет ВСЕ очереди текущего пользователя (рут удаляет больше)

ipcmk

ipcmk — создаёт ipc структуры. Иногда бывает нужно.

ipcmk -Q «Первый в очереди»

Read more posts by this author.