Koha/debian/scripts/koha-start-zebra
Marcel de Rooy 7412523624 Bug 15714: Remove zebra.log and add loglevels
The file zebra.log is actually not used, because daemon's --output
parameter sends all message to zebra-output (making that stdout
goes there too and --stdout does nothing). We do not need any
differentiation (if any at all) here; behavior does not change.

Note: zebra-error will only contain the daemon's error messages and not
the zebra error messages! So you will probably only find messages about
stopping zebra in zebra-error.

The loglevels are by default none,fatal,warn and can be changed via the
zebra_loglevels config variable (read by koha-functions.sh). If you remove
'none', you will have request-messages in the log. You can also keep 'none'
and add 'request' to achieve something similar (undocumented however).

Some of the parameters passed to daemon when stopping zebra are
superfluous and have been removed.

Test plan:
[1] Remove the file zebra.log. Look at last lines in zebra-error and
    zebra-output.
[2] Remove zebra_loglevels from koha-conf (if present).
    Start/restart Zebra. Search to verify if Zebra runs.
    Stop Zebra and check zebra-error for a new line (killed by signal 15).
[3] Add fatal,warn in koha-conf:zebra_loglevels (do not include 'none').
    Start Zebra. Check zebra-output for a line "[log] zebra_start".
    Do a search and check zebra-output for lines with "[request]".
[4] Verify that zebra.log did not appear again.

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
2016-02-24 03:38:18 +00:00

89 lines
2.6 KiB
Bash
Executable file

#!/bin/sh
#
# koha-start-zebra - Start Zebra for named Koha instances
# Copyright 2010 Catalyst IT, Ltd
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
set -e
# include helper functions
if [ -f "/usr/share/koha/bin/koha-functions.sh" ]; then
. "/usr/share/koha/bin/koha-functions.sh"
else
echo "Error: /usr/share/koha/bin/koha-functions.sh not present." 1>&2
exit 1
fi
start_zebra_instance()
{
local instancename=$1
# get zebra log levels from koha-conf.xml
local loglevels=$(get_loglevels $instancename)
echo "Starting Zebra server for $instancename"
touch "/var/log/koha/$instancename/zebra-error.log" \
"/var/log/koha/$instancename/zebra-output.log"
chown "$instancename-koha:$instancename-koha" \
"/var/log/koha/$instancename/zebra-error.log" \
"/var/log/koha/$instancename/zebra-output.log"
daemon \
--name="$instancename-koha-zebra" \
--pidfiles="/var/run/koha/$instancename/" \
--errlog="/var/log/koha/$instancename/zebra-error.log" \
--output="/var/log/koha/$instancename/zebra-output.log" \
--verbose=1 \
--respawn \
--delay=30 \
--user="$instancename-koha.$instancename-koha" \
-- \
zebrasrv \
-v $loglevels \
-f "/etc/koha/sites/$instancename/koha-conf.xml" && \
return 0 || \
return 1
}
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 "$@"
do
if is_instance $name ; then
if ! is_zebra_running $name; then
if ! start_zebra_instance $name; then
warn "Something went wrong starting Zebra for $name."
fi
else
warn "Zebra already running for instance $name."
fi
else
warn "Unknown instance $name."
fi
done
exit 0