#!/usr/bin/perl # $RCSfile: shmkill,v $$Revision: 1.5 $$Date: 2001/05/24 18:35:04 $ # A script to call from crontab periodically when people are leaving shared # memory sitting around unattached. open(ipcs,'ipcs -m -o|') || die "Can't run ipcs: $!"; while () { $tmp = index($_,'NATTCH'); $pos = $tmp if $tmp >= 0; if (/^m/) { ($m,$id,$key,$mode,$owner,$group,$attach) = split; if ($attach != substr($_,$pos,6)) { die "Different ipcs format--can't parse!\n"; } if ($attach == 0) { push(@goners,'-m',$id); } } } exec 'ipcrm', @goners if $#goners >= 0;