#!/bin/sh # # Copyright (C) 2000-2015 Kern Sibbald # License: BSD 2-Clause; see file LICENSE-FOSS # # # test the reload and test command # TestName="reload-test" . scripts/functions require_linux scripts/cleanup scripts/copy-confs bstat=0 rstat=0 zstat=0 detect_error() { $bin/bacula-dir -t $conf/bacula-dir.conf 2>&1 >> $tmp/testconf.log if [ $? = 0 ]; then estat=1 print_debug "ERROR: Should detect error on bacula-dir.conf" fi } do_reload() { cat > $tmp/bcons <&1 | tee -a $tmp/reload.log ps $pid > /dev/null if [ $? != 0 ]; then estat=1 print_debug "ERROR: Bacula shouldn't die with a reload" fi ls -l /proc/$pid/fd | grep bacula-dir.conf if [ $? = 0 ]; then estat=1 print_debug "ERROR: Should not have bacula-dir.conf open" fi } start_test # should be ok $bin/bacula-dir -t $conf/bacula-dir.conf if [ $? != 0 ]; then estat=1 print_debug "ERROR: Error on bacula-dir.conf" fi $bin/bacula-ctl-dir start >/dev/null pid=`cat $working/bacula-dir.$BASEPORT.pid` echo "bacula-dir pid is $pid" sleep 2 ls -l /proc/$pid/fd | grep bacula-dir.conf if [ $? = 0 ]; then estat=1 print_debug "ERROR: Should not have bacula-dir.conf open" fi # should work well do_reload # backup the configuration cp $conf/bacula-dir.conf $tmp/1 cat >> $conf/bacula-dir.conf<> $conf/bacula-dir.conf<> $conf/bacula-dir.conf<> $conf/bacula-dir.conf</dev/null end_test