summaryrefslogtreecommitdiff
path: root/src/pmns/lockpmns
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmns/lockpmns')
-rw-r--r--src/pmns/lockpmns46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/pmns/lockpmns b/src/pmns/lockpmns
new file mode 100644
index 0000000..9e670cc
--- /dev/null
+++ b/src/pmns/lockpmns
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
+# Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# Lock the PMNS against concurrent transactional updates
+#
+
+. $PCP_DIR/etc/pcp.env
+
+lock=${1-$PCP_VAR_DIR/pmns/root}.lock
+
+i=0
+while true
+do
+ if pmlock $lock
+ then
+ # lock acquired
+ #
+ #DEBUG# echo "pmnslock: `date; ls -li $lock`"
+ break
+ fi
+ if [ $i -eq 20 ]
+ then
+ echo "lockpmns: Warning: Unable to acquire lock ($lock)"
+ echo " after 120 seconds ... continuing anyway"
+ exit 1
+ fi
+ sleep 5
+ i=`expr $i + 1`
+done
+
+exit 0