Bacula-client service fails to start on boot
-
I find that the bacula client fails to restart after a reboot on 2.1 because it can't find the /var/db/bacula directory.
The fix was to modify /usr/local/etc/rc.d/bacula-fd.sh to create this directory.
#!/bin/sh # # $FreeBSD: ports/sysutils/bacula-server/files/bacula-fd.in,v 1.9 2012/12/16 16:36:39 svnexp Exp $ # # PROVIDE: bacula_fd # REQUIRE: DAEMON # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # # bacula_fd_enable (bool): Set to YES by default. # Set it to YES to enable bacula_fd. # bacula_fd_flags (params): Set params used to start bacula_fd. # . /etc/rc.subr name="bacula_fd" rcvar=${name}_enable command=/usr/pbi/bacula-i386/sbin/bacula-fd load_rc_config $name : ${bacula_fd_enable="YES"} : ${bacula_fd_flags=" -u root -g wheel -v -c /usr/pbi/bacula-i386/etc/bacula-fd.conf"} : ${bacula_fd_pidfile="/var/run/bacula-fd.9102.pid"} pidfile="${bacula_fd_pidfile}" # This directory is missing on boot mkdir /var/db/bacula run_rc_command "$1"
Seems odd that this hasn't been reported elsewhere. Could there be something awry with my config?
Steve
-
It is a bug on nanoBSD. I installed it on a 2.1-RC2 test system and somewhere in the unpacking of the PBI and the install it happily created /var/db/bacula
But /var is a memory file system on nanoBSD. After a reboot, /var/db/bacula is gone and there is no code anywhere to create it.
It should work OK on full installs, where /var persists across boot. -
This problem remains on 2.1.5-RELEASE
I just countered it:
[2.1.5-RELEASE][admin@pfsense.unixathome.org]/etc(14): /usr/pbi/bacula-amd64/sbin/bacula-fd -d 10 -f -c /usr/pbi/bacula-amd64/etc/bacula-fd.conf
18-Oct 12:02 -fd: ERROR TERMINATION at util.c:871
Working Directory: "/var/db/bacula" not found. Cannot continue. -
My fix:
mkdir /usr/local/bacula/
chown bacula:bacula /usr/local/baculaRun vipw from the command line and adjust the home directory for bacula to be the above mentioned directory.
That is insufficient to get the correct WorkingDirectory value in bacula-fd.conf file.
The path, /var/db/bacula is hardcoded at https://packages.pfsense.org/packages/config/bacula-client/bacula-client.inc
Is that the problem? I believe so. If I edit /usr/local/pkg/bacula-client.inc and put the new path in there, the correct configuration is saved.
In addition, all instances of BACULA_LOCALBASE . /etc/bacula-fd.conf in /usr/local/pkg/bacula-client.inc needs to be BACULA_LOCALBASE . /etc/bacula/bacula-fd.conf
NOW it runs:
[2.1.5-RELEASE][admin@pfsense.unixathome.org]/cf(110): ps auwx | grep bacula
root 6659 0.0 0.3 28864 5756 ?? Is 12:56PM 0:00.00 /usr/pbi/bacula-amd64/sbin/bacula-fd -u root -g wheel -v -c /usr/pbi/bacula-amd64/etc/bacula/bacula-fd.conf
root 9672 0.0 0.1 6088 1400 1 R+ 12:56PM 0:00.00 grep baculaIn addition, the code seems to append -dir to the Director Name via pkg_edit.php?xml=bacula-client.xml&act=edit&id=0
Hope this helps to fix this bug.