Hi, Pete.

On 05/01/16 04:40, Peter Keller wrote:

>> Yes, I have noticed that after a restart, both processes were not able
>> to start and this was because the "bacula" directory I had manually
>> created in /var/run had disappeared. How you handle this?

> It disappears because /var/run is often on a ramdisk so when
> the machine reboots the data is lost forever. AFAICT, most startup scripts
> simply mkdir the appropriate directories they need in /var/run and chmod and
> chown them to be whatever they need to be.

Yes, thanks for the observation. I see that /var/run is a symbolic link
to /run which is a tmpfs device.

>> The startup scripts in the Debian packaged version uses a
>> "create_var_run_dir" function but I don't see its definition within the
>> scripts.

> I personally think the bacula startup scripts need to create the directories
> leading up to the PIDFILE and SUBSYSDIR and ensure they are owned properly.
> They currently don't (by inspection).
> 
> In my setup, the Director and Storage daemons are run as the 'bacula' user and
> only the File Daemon is root. All bacula config files (and ssl certs which
> are bacula related) are owned by 'bacula' in group 'bacula' and are mode 640.
> All directories like /var/log/bacula/, /var/run/lock/bacula/, and such
> are bacula.bacula and 750.

Here too I have compiled using 'bacula' user 'bacula' and 'bacula'
group. In my compiled installation directories were created with the
following permissions:

root@baculatest:~# ll -d /var/log/bacula
drwxr-xr-x 2 bacula bacula 4096 Dec 24 19:50 /var/log/bacula

root@baculatest:~# ll -d /var/lib/bacula/
drwxrwx--- 2 bacula bacula 4096 Jan  4 21:48 /var/lib/bacula

root@baculatest:~# ll -d /etc/bacula/
drwxrwx--- 3 bacula bacula 4096 Jan  4 21:43 /etc/bacula


Has you manually changed something to have the permissions that you
mentioned?

> My personal preference for how bacula is installed on a machine did
> not match the defaults bacula chooses. I ended up specifying a pile of
> arguments to ./configure to spread the installed files around like more
> traditional unix applications do.
> 
> In addition to the LSB info block, I ended up adding this after the respective
> variable definition block in each bacula startup script.
> 
> mkdir -p ${PIDDIR} ${SUBSYSDIR}
> chown -R bacula.bacula ${PIDDIR} ${SUBSYSDIR}
> chmod -R 750 ${PIDDIR} ${SUBSYSDIR}
> 
> That ensures that each startup script created those directories and the races
> didn't matter since all interleaved control paths lead to the same thing in
> the file system.

I found this bug report [1] from some years ago. Seeing again the
startup scripts on that basis, I have found (in the Bacula 5.2.6 version
of Debian repositories) the definition of the function mentioned in an
independent file:

------------------------------------------------------------------------------
backup:~# cat /usr/share/bacula-common/common-functions.init
#
# Common functions, used from init scripts
#

create_var_run_dir()
{
        if [ ! -d /var/run/bacula/ ]; then
                mkdir -p -m 0755 /var/run/bacula/
                chown bacula:daemon /var/run/bacula/
        fi
}
------------------------------------------------------------------------------

In my case I should use the chown with 'bacula: bacula'.

> Others on this list may disagree with how I chose to do things and since I'm
> new to Bacula, I'm sure they'll have good advice. 7.2.0 wasn't in the repos I
> needed and compiling it by hand caused me to take many steps to create an
> install in the manner I thought appropriate. YMMV.
> 
> It does seem, though, that I didn't know about 'make install-autostart'.
> I'm somewhat surprised since usually the /etc/init.d scripts are
> installed by 'make install' in most other unix packages so I wasn't
> expecting there to be a special make target for it. I'll have to
> figure that out and see if it removes some of the work I was doing
> by hand.

Neither I did not know :-D

I found this when inspect the Makefile options:

------------------------------------------------------------------------------
install: installdirs
        @for I in $(doc_files) ; do $(INSTALL_DATA) $$I
$(DESTDIR)${docdir}; done
        @for I in $(all_subdirs); do (cd $$I && $(MAKE)
DESTDIR=$(DESTDIR) $@ || exit 1); done

uninstall:
        @for I in $(all_subdirs); do (cd $$I && $(MAKE)
DESTDIR=$(DESTDIR) $@ || exit 1); done

install-autostart:
        (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)

install-autostart-dir:
        (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)

install-autostart-fd:
        (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)

install-autostart-sd:
        (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)

uninstall-autostart:
        (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)

uninstall-autostart-dir:
        (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)

uninstall-autostart-fd:
        (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)

uninstall-autostart-sd:
        (cd platforms && $(MAKE) DESTDIR=$(DESTDIR) $@ || exit 1)
------------------------------------------------------------------------------

> However, an inspection of those debian specific startup scripts
> just now still leaves out the mkdir/chown/chmod block I need and it
> doesn't depend on postgres or mysql in the LSB block (and it doesn't
> seem that it can algorithmically choose), so it appears that needs
> to be fixed anyway....

Yes. Certainly, the mkdir/chown block  was something that I had to
manually added. I don't remember if I had also manually added the
database dependency block, although it seems so:

------------------------------------------------------------------------------
root@baculatest:/usr/src/bacula/bacula/platforms/debian# diff bacula-dir
/etc/init.d/bacula-dir
16a17
> # Should-Start:      bacula-fd postgresql mysql
45c46
< PIDFILE=/var/run/${NAME}.${BPORT}.pid
---
> PIDFILE=/var/run/bacula/${NAME}.${BPORT}.pid
------------------------------------------------------------------------------


Best regards,
Daniel

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=452683

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to