mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Fix on Linux
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
#!/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`
|
|||||||
# 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
|
|||||||
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)."
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# try remove
|
||||||
|
ipcrm shm $ipcs_shmid
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
did_anything=t
|
||||||
else
|
else
|
||||||
# try remove
|
exit
|
||||||
ipcrm shm $ipcs_id
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
did_anything=t
|
|
||||||
else
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
ipcs_id=
|
|
||||||
ipcs_lpid=
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# semaphores
|
# semaphores
|
||||||
|
Reference in New Issue
Block a user