[NBLUG/talk] ipcs/ipcrm
Walter Hansen
gandalf at sonic.net
Wed Jun 22 17:14:01 PDT 2005
Yay, it seemed to work with no error messages. Thanks bunches. I'll put it
in my nightly crontab. I wonder what's up with that postgres 10meg sms
though? Is that normal?
BEFORE:
[root at abco bin]# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x626d756e 655360 root 666 65536 0
0x646c6f68 688129 root 666 65536 0
0x00000000 557058 postgres 600 10436608 1 dest
------ Semaphore Arrays --------
key semid owner perms nsems
0x626d756e 3801088 root 666 3
0x646c6f68 3833857 root 666 3
------ Message Queues --------
key msqid owner perms used-bytes messages
AFTER:
[root at abco bin]# vi killques
[root at abco bin]# ./killques
[root at abco bin]# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 557058 postgres 600 10436608 1 dest
------ Semaphore Arrays --------
key semid owner perms nsems
------ Message Queues --------
key msqid owner perms used-bytes messages
[root at abco bin]#
> On Wed, 22 Jun 2005 12:32:47 -0700 (PDT), "Walter Hansen"
> <gandalf at sonic.net> said:
>> Sorry this took so long. I was real busy on a project and it's now
>> clearing up...
>
> NP.
>
> So looking at the output, I'm assuming the shmid's owned by root
> are the targets. And also by looking at the keys, the two sema's
> too. Unfortunately, there is no way to determine whether a sema
> is 'orphaned' since, by their nature, they exist outside of the whole
> process structure.
>
>> [root at abco wrs]# ipcs
>>
>> ------ Shared Memory Segments --------
>> key shmid owner perms bytes nattch status
>> 0x626d756e 655360 root 666 65536 0
>> 0x646c6f68 688129 root 666 65536 0
>> 0x00000000 557058 postgres 600 10436608 1 dest
>>
>> ------ Semaphore Arrays --------
>> key semid owner perms nsems
>> 0x626d756e 3801088 root 666 3
>> 0x646c6f68 3833857 root 666 3
>
> So from the above, the biggest 'hammer' we should use would
> be something like this:
>
> #!/bin/sh
>
> # If we are debugging, just echo the nasties
> if [ "$1" = "-d" ]
> then
> ECHO=echo
> shift
> fi
>
> user=${1:-`whoami`}
>
> ipcs -m |
> while read key shmid owner perms bytes nattch status
> do
> # Simple exclusions. The garbage headers will be caught by
> # the "$nattch" != "0" clause.
> #
> [ -n "$status" -o "$nattch" != "0" -o "$key" = "0x00000000" ] &&
> continue
>
> # Arg-based exclusions. You could do more here, but this
> # will do for now.
> #
> [ "$user" != "$owner" ] && continue
>
> # At this point we know it hasn't been destroyed already.
> # And it's got no attachments. And it has a key. And it
> # belongs to the specified user. Kill it and and any associated
> # sema.
> #
> $ECHO ipcrm -m "$shmid" && $ECHO ipcrm -S "$key"
> done
>
> You may get some error messages from the blind removal of the
> sema so you can either ignore them or redirect them to /dev/null.
>
> HTH
>
> Oh! Yeah. Usual disclaimers apply. ;-)
>
> Ross.
>
>
> --
> http://www.fastmail.fm - And now for something completely different
>
>
> _______________________________________________
> talk mailing list
> talk at nblug.org
> http://nblug.org/cgi-bin/mailman/listinfo/talk
>
>
More information about the talk
mailing list