Bug 8519 - Make koha-index-daemon run on startup

[This patch was split out from tcohen's excellent patches for bug 8519
--jcamins 2012/10/31]

Added a new koha-index-daemon-ctl.sh script that uses the
'koha-index-daemon' provided by Koha::Contrib::Tamil (install via CPAN)
to process the indexing queue ('zebraqueue' for now, 'indexqueue' in the
future I guess :-P).

This script could be easily modified in the future for using another
index queue processing script (a more abstract indexing script for both Solr
and Zebra, etc). I removed all zebra-ish stuff from it.

Documentation patches will be provided as followups, once Mark Tompsett's
docs are pushed to avoid continous rebasing.

Tested to work on an up-to-date Ubuntu 12.04.

Sponsored-by: Universidad Nacional de Córdoba

Signed-off-by: wajasu <matted-34813@mypacks.net>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
This commit is contained in:
Tomás Cohen Arazi 2012-10-31 14:53:02 -04:00 committed by Jared Camins-Esakov
parent 56c52b2dbc
commit 3a26d655ab
5 changed files with 92 additions and 3 deletions

View file

@ -523,6 +523,7 @@ if ($config{'INSTALL_ZEBRA'} eq "yes") {
push @{ $pl_files->{'rewrite-config.PL'} }, (
'blib/SCRIPT_DIR/koha-zebra-ctl.sh',
'blib/SCRIPT_DIR/koha-pazpar2-ctl.sh',
'blib/SCRIPT_DIR/koha-index-daemon-ctl.sh',
);
if ($config{'INSTALL_PAZPAR2'} eq 'yes') {
push @{ $pl_files->{'rewrite-config.PL'} }, (

View file

@ -523,6 +523,8 @@ a2ensite koha
invoke-rc.d apache2 reload
koha_script=`makefile_value KOHA_DEST_SCRIPT_DIR`
ln -s "$koha_script"/koha-index-daemon-ctl.sh /etc/init.d/koha-index-daemon
update-rc.d koha-index-daemon defaults
# TODO:
# - add translator

View file

@ -0,0 +1,86 @@
#!/bin/sh
# This file is part of Koha.
#
# Koha 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.
#
# Koha 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
# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
# Suite 330, Boston, MA 02111-1307 USA
### BEGIN INIT INFO
# Provides: koha-index-daemon-$DBNAME
# Required-Start: $local_fs $syslog
# Required-Stop: $local_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: false
# Short-Description: Start/stop koha-index-daemon for $DBNAME
### END INIT INFO
. /lib/lsb/init-functions
USER=__KOHA_USER__
GROUP=__KOHA_GROUP__
DBNAME=__DB_NAME__
NAME=koha-index-daemon-$DBNAME
LOGDIR=__LOG_DIR__
PERL5LIB=__PERL_MODULE_DIR__
KOHA_CONF=__KOHA_CONF_DIR__/koha-conf.xml
ERRLOG=$LOGDIR/koha-index-daemon.err
STDOUT=$LOGDIR/koha-index-daemon.log
OUTPUT=$LOGDIR/koha-index-daemon-output.log
export KOHA_CONF
export PERL5LIB
INDEXDAEMON="koha-index-daemon"
INDEXDAEMON_OPTS="--timeout 30 --conf $KOHA_CONF \
--directory /var/tmp/koha-index-daemon-$DBNAME"
DAEMONOPTS="--name=$NAME \
--errlog=$ERRLOG \
--stdout=$STDOUT \
--output=$OUTPUT \
--verbose=1 --respawn --delay=30"
USER="--user=$USER.$GROUP"
case "$1" in
start)
log_daemon_msg "Starting Koha indexing daemon ($DBNAME)"
if daemon $DAEMONOPTS $USER -- $INDEXDAEMON $INDEXDAEMON_OPTS; then
log_end_msg 0
else
log_end_msg 1
fi
;;
stop)
log_daemon_msg "Stopping Koha indexing daemon ($DBNAME)"
if daemon $DAEMONOPTS $USER --stop -- $INDEXDAEMON $INDEXDAEMON_OPTS; then
log_end_msg 0
else
log_end_msg 1
fi
;;
restart)
log_daemon_msg "Restarting the Koha indexing daemon ($DBNAME)"
if daemon $DAEMONOPTS $USER --restart -- $INDEXDAEMON $INDEXDAEMON_OPTS; then
log_end_msg 0
else
log_end_msg 1
fi
;;
*)
log_success_msg "Usage: /etc/init.d/$NAME {start|stop|restart}"
exit 1
;;
esac

View file

@ -29,7 +29,7 @@ REAL_REWRITE_SCRIPT = ../rewrite-config.PL
ZEBRA_CONF_DIR = run/etc/zebradb
ZEBRA_CONF_FILES = $(ZEBRA_CONF_DIR)/etc/passwd $(ZEBRA_CONF_DIR)/zebra-biblios.cfg $(ZEBRA_CONF_DIR)/zebra-authorities.cfg $(ZEBRA_CONF_DIR)/zebra-authorities-dom.cfg $(ZEBRA_CONF_DIR)/explain-authorities.xml $(ZEBRA_CONF_DIR)/explain-biblios.xml $(ZEBRA_CONF_DIR)/retrieval-info-auth-grs1.xml $(ZEBRA_CONF_DIR)/retrieval-info-auth-dom.xml $(ZEBRA_CONF_DIR)/ccl.properties $(ZEBRA_CONF_DIR)/cql.properties $(ZEBRA_CONF_DIR)/pqf.properties
SCRIPTS = koha-zebra-ctl.sh koha-pazpar2-ctl.sh
SCRIPTS = koha-zebra-ctl.sh koha-pazpar2-ctl.sh koha-index-daemon-ctl.sh
SRC_SCRIPT_DIR = ../misc/bin
TEST_SCRIPT_DIR = run/bin

View file

@ -818,7 +818,7 @@ sub stop_zebrasrv {
sub start_zebraqueue_daemon {
my $command = q(echo "zebraqueue_daemon is deprecated");
my $command = q(run/bin/koha-index-daemon-ctl.sh start);
diag $command;
my $started = system( $command );
diag "started: $started";
@ -832,7 +832,7 @@ sub start_zebraqueue_daemon {
sub stop_zebraqueue_daemon {
my $command = q(echo "zebraqueue_daemon is deprecated");
my $command = q(run/bin/koha-index-daemon-ctl.sh stop);
diag $command;
my $started = system( $command );
diag "started: $started";