2013-08-07 2 views
0

Возможно ли сбросить и исследовать содержимое разделяемой памяти из Linux? Я заметил некоторые странные сегменты разделяемой памяти в выводе «ipcs -m» и хочу видеть, что там есть. Также можно определить создателя этого сегмента. «Натч» кажется всегда нулевым.Dump shared memory

ответ

2

Посмотрите на этот инструмент

Shmcat

Это хороший инструмент для вашей цели.

Что вы имеете в виду с создателем? Вы имеете в виду PID процесса? В этом последнем случае вы можете использовать

ipcs -mp 

Вы получите этот результат:

------ Shared Memory Creator/Last-op -------- 
shmid  owner  cpid  lpid 
3211265 root  1857  1866 

где

CPID 
The process ID of the job that created the shared memory segment. 

и

LPID 
The process ID of the last job to attach or detach from the shared memory segment or change the semaphore value. 

Edit:

Невозможно зарегистрировать эту информацию со стандартными инструментами.

Я думаю, что мы можем сделать таким образом.

Предположим, мы выполняем команду:

ipcs -m 

и получить эти результаты

------ Shared Memory Segments -------- 
key  shmid  owner  perms  bytes  nattch  status 
0x00000000 3211265 root  644  80   2 

Затем с помощью команды Grep 3211265/Proc/*/карты, мы получаем:

/proc/1862/maps:bla bla bla rw-s 00000000 00:09 3211265     /SYSV00000000 (deleted) 
/proc/1863/maps:bla bla bla rw-s 00000000 00:09 3211265     /SYSV00000000 (deleted) 

Таким образом мы получаем процессы, которые были привязаны к сегменту.

Сканирование элементов в/proc/*/maps, вы можете обнаружить PID, которые в настоящее время подключены к данному сегменту.

Вы можете использовать скрипт bash, который регистрирует эту конкретную информацию.

+0

Благодарим вас за разъяснение, что такое CPID и LPID. Но можно ли их каким-то образом зарегистрировать? Потому что к моменту обнаружения этого сегмента «ps aux | egrep CPID | LPID» ничего не дает. И я думаю, что команда «ipcs -mp» сама меняет LPID? – Radium

+0

Я отредактировал свой ответ. Я надеюсь быть полезным. – Oscerd

+0

Вы попробовали? Какая ситуация? – Oscerd

Смежные вопросы