#!/bin/bash2
# ============================================================== #
# Удаление "лишних средств IPC #
# ============================================================== #
rm $HOME/tmp01 2>/dev/null
rm $HOME/tmp02 2>/dev/null
# Определение имени пользователя
m=`whoami`
#=========== УДАЛЕНИЕ ОЧЕРЕДЕЙ ===============
# получение списка очередей;
# выборка строк с именем пользователя;
# выборка столбца с ID очереди;
# запись в файл
ipcs -q | grep $m | cut -f2 -d' ' | grep [0-9] >$HOME/tmp01
# перебор файла с ID очередей
while test -s $HOME/tmp01
do
# выборка 1-й строки
str=`head -n1 $HOME/tmp01`
# удаление очереди по ее ID
ipcrm msg $str
# удаление 1-й строки из файла
sed '1d' $HOME/tmp01 >$HOME/tmp02
rm $HOME/tmp01
mv $HOME/tmp02 $HOME/tmp01
done
# удаление временных файлов
rm $HOME/tmp01 2>/dev/null
rm $HOME/tmp02 2>/dev/null
#=========== то же - для семафоров ===============
ipcs -s | grep $m | cut -f2 -d' ' | grep [0-9] >$HOME/tmp01
while test -s $HOME/tmp01
do
str=`head -n1 $HOME/tmp01`
ipcrm sem $str
sed '1d' $HOME/tmp01 >$HOME/tmp02
rm $HOME/tmp01
mv $HOME/tmp02 $HOME/tmp01
done
rm $HOME/tmp01 2>/dev/null
rm $HOME/tmp02 2>/dev/null
#=========== то же - для общих областей памяти ===============
ipcs -m | grep $m | cut -f2 -d' ' | grep [0-9] >$HOME/tmp01
while test -s $HOME/tmp01
do
str=`head -n1 $HOME/tmp01`
ipcrm shm $str
sed '1d' $HOME/tmp01 >$HOME/tmp02
rm $HOME/tmp01
mv $HOME/tmp02 $HOME/tmp01
done
rm $HOME/tmp01 2>/dev/null
rm $HOME/tmp02 2>/dev/null
|