[Koha-patches] [PATCH] Functional SIP run and shutdown scripts. Update example SIPconfig.xml

Joe Atzberger joe.atzberger at liblime.com
Sat Jun 20 02:32:41 CEST 2009


From: Joe Atzberger (siptest <atz4sip at arwen.metavore.com>

Note the shutdown script is quick and dirty, and probably
platform (debian) specific.
---
 C4/SIP/SIPconfig.xml   |   24 +++++++++++++-----------
 C4/SIP/sip_run.sh      |   37 +++++++++++++++++++++++++++++++++++++
 C4/SIP/sip_shutdown.sh |   19 +++++++++++++++++++
 3 files changed, 69 insertions(+), 11 deletions(-)
 create mode 100755 C4/SIP/sip_run.sh
 create mode 100755 C4/SIP/sip_shutdown.sh

diff --git a/C4/SIP/SIPconfig.xml b/C4/SIP/SIPconfig.xml
index a3800b5..0e5f05e 100644
--- a/C4/SIP/SIPconfig.xml
+++ b/C4/SIP/SIPconfig.xml
@@ -1,5 +1,5 @@
 <acsconfig xmlns="http://openncip.org/acs-config/1.0/">
-<!-- FIXME: above address gets nothing? -->
+<!-- above address gets nothing, it's just a namespace -->
   <error-detect enabled="true" />
 
 <!-- Set Net::Server::PreFork runtime parameters -->
@@ -36,37 +36,39 @@
              delimiter="|" error-detect="enabled" institution="LPL" />
   </accounts>
 
-<!-- Institution tags will hold stuff used to interface to -->
-<!-- the rest of the ILS: authentication parameters, etc.  I -->
-<!-- don't know what yet, so it'll just be blank.  But there -->
-<!-- needs to be one institution stanza for each institution -->
-<!-- named in the accounts above. -->
+<!--
+Institution tags are for enabled branches.  There needs to be one
+institution stanza for each institution named in the accounts above.
+The implementation attribute is actually used to find the code to run,
+in our case "ILS".
+-->
+
 <institutions>
     <institution id="MAIN" implementation="ILS" parms="">
-          <policy checkin="true" renewal="true"
+          <policy checkin="true" renewal="true" checkout="true"
 	  	  status_update="false" offline="false"
 		  timeout="100"
 	  	  retries="5" />
     </institution>
     <institution id="CPL" implementation="ILS" parms="">
-          <policy checkin="true" renewal="true"
+          <policy checkin="true" renewal="true" checkout="true"
 	  	  status_update="false" offline="false"
 		  timeout="25"
 	  	  retries="5" />
     </institution>
     <institution id="kohalibrary" implementation="ILS" parms="">
-          <policy checkin="true" renewal="false"
+          <policy checkin="true" renewal="false" checkout="true"
 	  	  status_update="false" offline="false"
 		  timeout="100"
 	  	  retries="5" />
     </institution>
     <institution id="kohalibrary2" implementation="ILS" parms="">
-          <policy checkin="true" renewal="false"
+          <policy checkin="true" renewal="false" checkout="true"
 		  timeout="100"
 	  	  retries="3" />
     </institution>
     <institution id="LPL" implementation="ILS">
-          <policy checkin="true" renewal="false"
+          <policy checkin="true" renewal="false" checkout="true"
 		  timeout="100"
 	  	  retries="5" />
     </institution>
diff --git a/C4/SIP/sip_run.sh b/C4/SIP/sip_run.sh
new file mode 100755
index 0000000..587e323
--- /dev/null
+++ b/C4/SIP/sip_run.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+# 
+# A sample script for starting SIP.  
+# You probably want to specify new log destinations.
+#
+# Takes 3 optional arguments:
+# ~ SIPconfig.xml file to use
+# ~ file for STDOUT, default ~/sip.out
+# ~ file for STDERR, default ~/sip.err
+#
+# The STDOUT and STDERR files are only for the SIPServer process itself.
+# Actual SIP communication and transaction logs are handled by Syslog.
+#
+# Examples:
+#   sip_run.sh /path/to/SIPconfig.xml
+#   sip_run.sh ~/my_sip/SIPconfig.xml sip_out.log sip_err.log
+
+
+for x in HOME PERL5LIB KOHA_CONF ; do
+	echo $x=${!x}
+	if [ -z ${!x} ] ; then 
+		echo ERROR: $x not defined;
+		exit 1;
+	fi;
+done;
+unset x;
+cd $PERL5LIB/C4/SIP;
+echo;
+echo Running from `pwd`;
+
+sipconfig=${1:-`pwd`/SIPconfig.xml};
+outfile=${2:-$HOME/sip.out};
+errfile=${3:-$HOME/sip.err};
+
+echo "Calling (backgrounded):";
+echo "perl -I./ ./SIPServer.pm $sipconfig >>$outfile 2>>$errfile";
+perl -I./ ./SIPServer.pm $sipconfig >>$outfile 2>>$errfile &
diff --git a/C4/SIP/sip_shutdown.sh b/C4/SIP/sip_shutdown.sh
new file mode 100755
index 0000000..07abbce
--- /dev/null
+++ b/C4/SIP/sip_shutdown.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+. $HOME/.bash_profile
+
+# this is brittle: the primary server must have the lowest PPID
+# this is brittle: ps behavior is very platform-specific, only tested on Debian Etch
+
+target="SIPServer";
+PROCPID=$(ps x -o pid,ppid,args --sort ppid | grep "$target" | grep -v grep | head -1 | awk '{print $1}');
+
+if [ ! $PROCPID ] ; then
+    echo "No processes found for $target";
+    exit;
+fi
+
+echo "SIP Processes for this user ($USER):";
+ps x -o pid,ppid,args --sort ppid | grep "$target" | grep -v grep ;
+echo "Killing process #$PROCPID";
+kill $PROCPID;
-- 
1.5.6.5



More information about the Koha-patches mailing list