Browse Source

Functional SIP run and shutdown scripts. Update example SIPconfig.xml

Note the shutdown script is quick and dirty, and probably
platform (debian) specific.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
3.2.x
Joe Atzberger (siptest 15 years ago
committed by Galen Charlton
parent
commit
ddc6310673
  1. 24
      C4/SIP/SIPconfig.xml
  2. 37
      C4/SIP/sip_run.sh
  3. 19
      C4/SIP/sip_shutdown.sh

24
C4/SIP/SIPconfig.xml

@ -1,5 +1,5 @@
<acsconfig xmlns="http://openncip.org/acs-config/1.0/"> <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" /> <error-detect enabled="true" />
<!-- Set Net::Server::PreFork runtime parameters --> <!-- Set Net::Server::PreFork runtime parameters -->
@ -36,37 +36,39 @@
delimiter="|" error-detect="enabled" institution="LPL" /> delimiter="|" error-detect="enabled" institution="LPL" />
</accounts> </accounts>
<!-- Institution tags will hold stuff used to interface to --> <!--
<!-- the rest of the ILS: authentication parameters, etc. I --> Institution tags are for enabled branches. There needs to be one
<!-- don't know what yet, so it'll just be blank. But there --> institution stanza for each institution named in the accounts above.
<!-- needs to be one institution stanza for each institution --> The implementation attribute is actually used to find the code to run,
<!-- named in the accounts above. --> in our case "ILS".
-->
<institutions> <institutions>
<institution id="MAIN" implementation="ILS" parms=""> <institution id="MAIN" implementation="ILS" parms="">
<policy checkin="true" renewal="true" <policy checkin="true" renewal="true" checkout="true"
status_update="false" offline="false" status_update="false" offline="false"
timeout="100" timeout="100"
retries="5" /> retries="5" />
</institution> </institution>
<institution id="CPL" implementation="ILS" parms=""> <institution id="CPL" implementation="ILS" parms="">
<policy checkin="true" renewal="true" <policy checkin="true" renewal="true" checkout="true"
status_update="false" offline="false" status_update="false" offline="false"
timeout="25" timeout="25"
retries="5" /> retries="5" />
</institution> </institution>
<institution id="kohalibrary" implementation="ILS" parms=""> <institution id="kohalibrary" implementation="ILS" parms="">
<policy checkin="true" renewal="false" <policy checkin="true" renewal="false" checkout="true"
status_update="false" offline="false" status_update="false" offline="false"
timeout="100" timeout="100"
retries="5" /> retries="5" />
</institution> </institution>
<institution id="kohalibrary2" implementation="ILS" parms=""> <institution id="kohalibrary2" implementation="ILS" parms="">
<policy checkin="true" renewal="false" <policy checkin="true" renewal="false" checkout="true"
timeout="100" timeout="100"
retries="3" /> retries="3" />
</institution> </institution>
<institution id="LPL" implementation="ILS"> <institution id="LPL" implementation="ILS">
<policy checkin="true" renewal="false" <policy checkin="true" renewal="false" checkout="true"
timeout="100" timeout="100"
retries="5" /> retries="5" />
</institution> </institution>

37
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 &

19
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;
Loading…
Cancel
Save