Bug 10144 - koha-start-zebra error handling
koha-start-zebra now - Checks the instance exists. - Checks the instance is enabled. - Checks if the zebra daemon is already running. Regards To+ Sponsored-by: Universidad Nacional de Córdoba Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz> Signed-off-by: Mason James <mtj@kohaaloha.com> Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
This commit is contained in:
parent
cee6909c8a
commit
98bde26d25
1 changed files with 111 additions and 15 deletions
126
debian/scripts/koha-start-zebra
vendored
126
debian/scripts/koha-start-zebra
vendored
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# koha-start-zebra -- Start Zebra for named Koha instandes
|
# koha-start-zebra - Start Zebra for named Koha instances
|
||||||
# Copyright 2010 Catalyst IT, Ltd
|
# Copyright 2010 Catalyst IT, Ltd
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
@ -18,20 +18,116 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
die()
|
||||||
|
{
|
||||||
|
echo "$@" 1>&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
warn()
|
||||||
|
{
|
||||||
|
echo "$@" 1>&2
|
||||||
|
}
|
||||||
|
|
||||||
|
is_enabled()
|
||||||
|
{
|
||||||
|
local instancename=$1
|
||||||
|
|
||||||
|
if ! is_instance $instancename; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -q '^[[:space:]]*Include /etc/koha/apache-shared-disable.conf' \
|
||||||
|
"/etc/apache2/sites-available/$instancename" ; then
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
is_instance()
|
||||||
|
{
|
||||||
|
local instancename=$1
|
||||||
|
|
||||||
|
if find /etc/koha/sites -mindepth 1 -maxdepth 1 \
|
||||||
|
-type d -printf '%f\n'\
|
||||||
|
| grep -q -x $instancename ; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
is_zebra_running()
|
||||||
|
{
|
||||||
|
local instancename=$1
|
||||||
|
|
||||||
|
if daemon --name="$instancename-koha-zebra" \
|
||||||
|
--user="$instancename-koha.$instancename-koha" \
|
||||||
|
--running ; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start_zebra_instance()
|
||||||
|
{
|
||||||
|
local instancename=$1
|
||||||
|
|
||||||
|
if is_enabled $instancename; then
|
||||||
|
echo "Starting Zebra server for $instancename"
|
||||||
|
daemon \
|
||||||
|
--name="$instancename-koha-zebra" \
|
||||||
|
--errlog="/var/log/koha/$instancename/zebra-error.log" \
|
||||||
|
--stdout="/var/log/koha/$instancename/zebra.log" \
|
||||||
|
--output="/var/log/koha/$instancename/zebra-output.log" \
|
||||||
|
--verbose=1 \
|
||||||
|
--respawn \
|
||||||
|
--delay=30 \
|
||||||
|
--user="$instancename-koha.$instancename-koha" \
|
||||||
|
-- \
|
||||||
|
zebrasrv \
|
||||||
|
-v none,fatal,warn \
|
||||||
|
-f "/etc/koha/sites/$instancename/koha-conf.xml" && \
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
local scriptname=$0
|
||||||
|
cat <<EOF
|
||||||
|
Starts Zebra for Koha instances.
|
||||||
|
|
||||||
|
Usage: $scriptname instancename1 instancename2...
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Parse command line.
|
||||||
|
[ $# -ge 1 ] || ( usage ; die "Missing instance name..." )
|
||||||
|
|
||||||
|
# Loop through the instance names
|
||||||
for name in "$@"
|
for name in "$@"
|
||||||
do
|
do
|
||||||
echo "Starting Zebra server for $name"
|
if is_instance $name ; then
|
||||||
daemon \
|
if is_enabled $name ; then
|
||||||
--name="$name-koha-zebra" \
|
if ! is_zebra_running $name; then
|
||||||
--errlog="/var/log/koha/$name/zebra-error.log" \
|
if ! start_zebra_instance $name; then
|
||||||
--stdout="/var/log/koha/$name/zebra.log" \
|
warn "Something went wrong starting Zebra for $name."
|
||||||
--output="/var/log/koha/$name/zebra-output.log" \
|
fi
|
||||||
--verbose=1 \
|
else
|
||||||
--respawn \
|
warn "Zebra already running for instance $name."
|
||||||
--delay=30 \
|
fi
|
||||||
--user="$name-koha.$name-koha" \
|
else
|
||||||
-- \
|
warn "Instance $name disabled. No action taken."
|
||||||
zebrasrv \
|
fi
|
||||||
-v none,fatal,warn \
|
else
|
||||||
-f "/etc/koha/sites/$name/koha-conf.xml"
|
warn "Unknown instance $name."
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
Loading…
Reference in a new issue