Commit 3f4d68cc authored by Peter Eisentraut's avatar Peter Eisentraut

Fix on Linux

parent a25a785f
#!/bin/sh #!/bin/sh
# #
# $Header: /cvsroot/pgsql/src/bin/ipcclean/Attic/ipcclean.sh,v 1.9 2001/02/10 06:12:15 momjian Exp $ # $Header: /cvsroot/pgsql/src/bin/ipcclean/Attic/ipcclean.sh,v 1.10 2001/02/10 10:27:28 petere Exp $
# #
CMDNAME=`basename $0` CMDNAME=`basename $0`
...@@ -38,8 +38,6 @@ EffectiveUser=`id -n -u 2>/dev/null || whoami 2>/dev/null` ...@@ -38,8 +38,6 @@ EffectiveUser=`id -n -u 2>/dev/null || whoami 2>/dev/null`
# This is based on RedHat 5.2. # This is based on RedHat 5.2.
# #
if [ `uname` = 'Linux' ]; then if [ `uname` = 'Linux' ]; then
ipcs_id=
ipcs_lpid=
did_anything= did_anything=
if ps x | grep -s '[p]ostmaster' >/dev/null 2>&1 ; then if ps x | grep -s '[p]ostmaster' >/dev/null 2>&1 ; then
...@@ -48,34 +46,36 @@ if [ `uname` = 'Linux' ]; then ...@@ -48,34 +46,36 @@ if [ `uname` = 'Linux' ]; then
fi fi
# shared memory # shared memory
for val in `ipcs -m -p | grep '^[0-9]' | awk '{printf "%s %s\n", $1, $3, $4}'` for val in `ipcs -m -p | grep '^[0-9]' | awk '{printf "%s:%s:%s\n", $1, $3, $4}'`
do do
if [ -z "$ipcs_id" ]; then save_IFS=$IFS
ipcs_id=$val IFS=:
# Note: We can do -n here, because we know the platform. set X $val
echo -n "Shared memory $ipcs_id ... " shift
continue IFS=$save_IFS
fi ipcs_shmid=$1
ipcs_cpid=$2
ipcs_lpid=$3
ipcs_lpid=$val # Note: We can do -n here, because we know the platform.
echo -n "Shared memory $ipcs_shmid ... "
# Don't do anything if process still running. # Don't do anything if process still running.
# (This check is conceptually phony, but it's # (This check is conceptually phony, but it's
# useful anyway in practice.) # useful anyway in practice.)
ps hj$ipcs_lpid >/dev/null 2>&1 ps hj $ipcs_cpid $ipcs_lpid >/dev/null 2>&1
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "skipped. Process still exists (pid $ipcs_lpid)." echo "skipped; process still exists (pid $ipcs_cpid or $ipcs_lpid)."
else continue
fi
# try remove # try remove
ipcrm shm $ipcs_id ipcrm shm $ipcs_shmid
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
did_anything=t did_anything=t
else else
exit exit
fi fi
fi
ipcs_id=
ipcs_lpid=
done done
# semaphores # semaphores
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment