set -e
-die()
-{
- echo "$@" 1>&2
+# 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
-}
-
-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
-}
+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
+ # 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
- fi
}
usage()
}
# Parse command line.
-[ $# -ge 1 ] || ( usage ; die "Missing instance name..." )
+#[ $# -ge 1 ] || ( usage ; die "Missing instance name..." )
# Loop through the instance names
for name in "$@"
do
if is_instance $name ; then
- if is_enabled $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."
+ if ! is_zebra_running $name; then
+ if ! start_zebra_instance $name; then
+ warn "Something went wrong starting Zebra for $name."
fi
else
- warn "Instance $name disabled. No action taken."
+ warn "Zebra already running for instance $name."
fi
else
warn "Unknown instance $name."