25 lines
590 B
Plaintext
25 lines
590 B
Plaintext
|
#!/usr/bin/perl
|
||
|
|
||
|
# $RCSfile: shmkill,v $$Revision: 4.1 $$Date: 92/08/07 17:20:45 $
|
||
|
|
||
|
# 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 (<ipcs>) {
|
||
|
$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;
|