Hi, Peter. Thanks for your reply.
On 04/01/16 13:19, Peter Keller wrote: >> I think LSB lines are correct: >> >> ---------------------------------------------------------------- >> ### BEGIN INIT INFO >> # Provides: bacula-dir >> # Required-Start: $network >> # Should-Start: bacula-fd postgresql mysql > Shouldn't postgresql and mysql be on the Required-Start line? > And, for me, it was postgres > > (...) > > Mine looks like this: > > ### BEGIN INIT INFO > # Provides: bacula-ctl-dir > # Required-Start: $local_fs $remote_fs $syslog $network $time postgresql > # Required-Stop: $local_fs $remote_fs $syslog $network $time postgresql > # Default-Start: 2 3 4 5 > # Default-Stop: 0 1 6 > # Short-Description: Bacula Directory Daemon > # Description: Bacula Directory Daemon Service > ### END INIT INFO Before checking, I was comparing the startup scripts with those I have in Debian Jessie with Bacula 5.2.6 installed from the Debian repositories. In that packaged installation I have the following: ----------------------------------------------------------------------- ### BEGIN INIT INFO # Provides: bacula-director # Required-Start: $remote_fs $syslog # Should-Start: bacula-fd postgresql mysql # Required-Stop: $remote_fs $syslog # Should-Stop: bacula-fd postgresql mysql # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start Bacula Director at boot time # Description: bacula-director is the daemon that supervises all the # backup, restore, verify and archive operations. The # system administrator uses the Bacula Director to schedule # backups and to recover files. ### END INIT INFO ----------------------------------------------------------------------- ### BEGIN INIT INFO # Provides: bacula-sd # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start Bacula Storage Daemon at boot time # Description: bacula-sd is daemon that perform the storage and recovery # of the file attributes and data to the physical backup # media or volumes. In other words, the Storage daemon is # responsible for reading and writing your tapes (or other # storage media, e.g. files). ### END INIT INFO ----------------------------------------------------------------------- So I think that would be correct. >> But unfortunately, even with these changes, the processes was not able >> to starts up: > Ah, in this case, here is what I did to debug further: > > I believe /etc/init.d/bacula-dir is the script you are running, so: > > # sh -x /etc/init.d/bacula-dir > > Then you'll be presented with the command line that is actually executed > when the startup script executes bacula-dir. Run that as root and add the > -v -f -d100 arguments. Those extra arguments may shake out the problem. Good point! Have a look at this: ----------------------------------------------------------------------- root@baculatest:/etc/bacula# sh -x /etc/init.d/bacula-dir start + NAME=bacula-dir + DESC=Bacula Director + DAEMON=/usr/sbin/bacula-dir + BUSER=bacula + BGROUP=bacula + BOPTIONS=-c /etc/bacula/bacula-dir.conf -v -f -d100 + BPORT=9101 + PATH=/sbin:/bin:/usr/sbin:/usr/bin + test -f /usr/sbin/bacula-dir + getent services bacula-dir + [ -n bacula-dir 9101/tcp ] + awk { gsub("/tcp","",$2); print $2; }+ getent services bacula-dir + BPORT=9101 + [ -f /etc/default/bacula-dir ] + PIDFILE=/var/run/bacula/bacula-dir.9101.pid + [ xbacula != x ] + USERGRP=--chuid bacula + [ xbacula != x ] + USERGRP=--chuid bacula:bacula + RETVAL=0 + echo -n Starting Bacula Director: Starting Bacula Director: + start-stop-daemon --start --quiet --pidfile /var/run/bacula/bacula-dir.9101.pid --chuid bacula:bacula --exec /usr/sbin/bacula-dir -- -c /etc/bacula/bacula-dir.conf -v -f -d100 bacula-dir: dird.c:208-0 Debug level = 100 bacula-dir: ERROR TERMINATION at parse_conf.c:896 Config error: Cannot open config file "/etc/bacula/bacula-dir.conf": Permission denied 04-Jan 21:19 bacula-dir: ERROR TERMINATION at parse_conf.c:896 Config error: Cannot open config file "/etc/bacula/bacula-dir.conf": Permission denied + RETVAL=1 + echo bacula-dir bacula-dir + exit 1 ----------------------------------------------------------------------- root@baculatest:/etc/bacula# ll /etc/bacula/bacula-dir.conf -rw-rw---- 1 root root 9182 Jan 4 21:17 /etc/bacula/bacula-dir.conf ----------------------------------------------------------------------- So I changed the file permissions: ----------------------------------------------------------------------- root@baculatest:/etc/bacula# chown bacula.bacula /etc/bacula/bacula-dir.conf root@baculatest:/etc/bacula# ll /etc/bacula/bacula-dir.conf -rw-rw---- 1 bacula bacula 9182 Jan 4 21:17 /etc/bacula/bacula-dir.conf ----------------------------------------------------------------------- Then I did a new test: ----------------------------------------------------------------------- root@baculatest:/etc/bacula# sh -x /etc/init.d/bacula-dir start + NAME=bacula-dir + DESC=Bacula Director + DAEMON=/usr/sbin/bacula-dir + BUSER=bacula + BGROUP=bacula + BOPTIONS=-c /etc/bacula/bacula-dir.conf -v -f -d100 + BPORT=9101 + PATH=/sbin:/bin:/usr/sbin:/usr/bin + test -f /usr/sbin/bacula-dir + getent services bacula-dir + [ -n bacula-dir 9101/tcp ] + + awk { gsub("/tcp","",$2); print $2; } getent services bacula-dir + BPORT=9101 + [ -f /etc/default/bacula-dir ] + PIDFILE=/var/run/bacula/bacula-dir.9101.pid + [ xbacula != x ] + USERGRP=--chuid bacula + [ xbacula != x ] + USERGRP=--chuid bacula:bacula + RETVAL=0 + echo -n Starting Bacula Director: Starting Bacula Director: + start-stop-daemon --start --quiet --pidfile /var/run/bacula/bacula-dir.9101.pid --chuid bacula:bacula --exec /usr/sbin/bacula-dir -- -c /etc/bacula/bacula-dir.conf -v -f -d100 bacula-dir: dird.c:208-0 Debug level = 100 bacula-dir: address_conf.c:275-0 Initaddr 0.0.0.0:9101 bacula-dir: ERROR TERMINATION at bsys.c:656 Cannot not open pid file. /var/run/bacula-dir.9101.pid ERR=Permission denied 04-Jan 21:26 bacula-dir: ERROR TERMINATION at bsys.c:656 Cannot not open pid file. /var/run/bacula-dir.9101.pid ERR=Permission denied + RETVAL=1 + echo bacula-dir bacula-dir + exit 1 ----------------------------------------------------------------------- Well, it is now trying to open /var/run/bacula-dir.9101.pid, but it is rare because it had changed the PIDFILE variable, so I checked the configuration file to see if it was taking a different location from there. And yes: root@baculatest:/etc/bacula# grep "/var/run" /etc/bacula/bacula-dir.conf PidDirectory = "/var/run" So I changed the variable PidDirectory to /var/run/bacula, and I tested the script again: ----------------------------------------------------------------------- root@baculatest:/etc/bacula# sh -x /etc/init.d/bacula-dir start + NAME=bacula-dir + DESC=Bacula Director + DAEMON=/usr/sbin/bacula-dir + BUSER=bacula + BGROUP=bacula + BOPTIONS=-c /etc/bacula/bacula-dir.conf -v -f -d100 + BPORT=9101 + PATH=/sbin:/bin:/usr/sbin:/usr/bin + test -f /usr/sbin/bacula-dir + getent services bacula-dir + [ -n bacula-dir 9101/tcp ] + awk { gsub("/tcp","",$2); print $2; } + getent services bacula-dir + BPORT=9101 + [ -f /etc/default/bacula-dir ] + PIDFILE=/var/run/bacula/bacula-dir.9101.pid + [ xbacula != x ] + USERGRP=--chuid bacula + [ xbacula != x ] + USERGRP=--chuid bacula:bacula + RETVAL=0 + echo -n Starting Bacula Director: Starting Bacula Director: + start-stop-daemon --start --quiet --pidfile /var/run/bacula/bacula-dir.9101.pid --chuid bacula:bacula --exec /usr/sbin/bacula-dir -- -c /etc/bacula/bacula-dir.conf -v -f -d100 bacula-dir: dird.c:208-0 Debug level = 100 bacula-dir: address_conf.c:275-0 Initaddr 0.0.0.0:9101 bacula-dir: jcr.c:132-0 read_last_jobs seek to 192 bacula-dir: jcr.c:139-0 Read num_items=0 bacula-dir: dir_plugins.c:151-0 Load Director plugins bacula-dir: dir_plugins.c:153-0 No Director plugin directory! bacula-dir: mysql.c:120-0 db_init_database first time bacula-dir: mysql.c:219-0 mysql_init done bacula-dir: mysql.c:258-0 mysql_real_connect done bacula-dir: mysql.c:260-0 db_user=bacula db_name=bacula db_password=xxxxxxxxxxxx bacula-dir: mysql.c:296-0 opendb ref=1 connected=1 db=c870f8 bacula-dir: mysql.c:320-0 closedb ref=0 connected=1 db=c870f8 bacula-dir: mysql.c:327-0 close db=c870f8 baculatest-dir: job.c:1698-0 wstorage=File1 baculatest-dir: job.c:1707-0 wstore=File1 where=Job resource baculatest-dir: job.c:1374-0 JobId=0 created Job=*JobMonitor*.2016-01-04_21.33.48_01 baculatest-dir: bnet_server.c:87-0 Addresses 0.0.0.0:9101 ----------------------------------------------------------------------- Success!! Then I did out the same verification with the script for the Storage Daemon: ----------------------------------------------------------------------- root@baculatest:/etc/bacula# sh -x /etc/init.d/bacula-sd start + NAME=bacula-sd + DESC=Bacula Storage Daemon + DAEMON=/usr/sbin/bacula-sd + BUSER=bacula + BGROUP=bacula + BOPTIONS=-c /etc/bacula/bacula-sd.conf -v -f -d100 + BPORT=9103 + PATH=/sbin:/bin:/usr/sbin:/usr/bin + test -f /usr/sbin/bacula-sd + getent services bacula-sd + [ -n bacula-sd 9103/tcp ] + awk { gsub("/tcp","",$2); print $2; } + getent services bacula-sd + BPORT=9103 + [ -f /etc/default/bacula-sd ] + PIDFILE=/var/run/bacula/bacula-sd.9103.pid + [ xbacula != x ] + USERGRP=--chuid bacula + [ xbacula != x ] + USERGRP=--chuid bacula:bacula + RETVAL=0 + echo -n Starting Bacula Storage Daemon: Starting Bacula Storage Daemon: + start-stop-daemon --start --quiet --pidfile /var/run/bacula/bacula-sd.9103.pid --chuid bacula:bacula --exec /usr/sbin/bacula-sd -- -c /etc/bacula/bacula-sd.conf -v -f -d100 bacula-sd: ERROR TERMINATION at parse_conf.c:896 Config error: Cannot open config file "/etc/bacula/bacula-sd.conf": Permission denied 04-Jan 21:37 bacula-sd: ERROR TERMINATION at parse_conf.c:896 Config error: Cannot open config file "/etc/bacula/bacula-sd.conf": Permission denied + RETVAL=1 + echo bacula-sd bacula-sd + exit 1 ----------------------------------------------------------------------- The same permissions problem. After adjust it as I did in the previous case, I redid the test: ----------------------------------------------------------------------- root@baculatest:/etc/bacula# sh -x /etc/init.d/bacula-sd start + NAME=bacula-sd + DESC=Bacula Storage Daemon + DAEMON=/usr/sbin/bacula-sd + BUSER=bacula + BGROUP=bacula + BOPTIONS=-c /etc/bacula/bacula-sd.conf -v -f -d100 + BPORT=9103 + PATH=/sbin:/bin:/usr/sbin:/usr/bin + test -f /usr/sbin/bacula-sd + getent services bacula-sd + [ -n bacula-sd 9103/tcp ] + awk { gsub("/tcp","",$2); print $2; }+ getent services bacula-sd + BPORT=9103 + [ -f /etc/default/bacula-sd ] + PIDFILE=/var/run/bacula/bacula-sd.9103.pid + [ xbacula != x ] + USERGRP=--chuid bacula + [ xbacula != x ] + USERGRP=--chuid bacula:bacula + RETVAL=0 + echo -n Starting Bacula Storage Daemon: Starting Bacula Storage Daemon: + start-stop-daemon --start --quiet --pidfile /var/run/bacula/bacula-sd.9103.pid --chuid bacula:bacula --exec /usr/sbin/bacula-sd -- -c /etc/bacula/bacula-sd.conf -v -f -d100 bacula-sd: address_conf.c:275-0 Initaddr 0.0.0.0:9103 bacula-sd: stored_conf.c:699-0 Inserting Director res: baculatest-mon bacula-sd: stored_conf.c:699-0 Inserting Device res: FileChgr1-Dev2 bacula-sd: stored_conf.c:699-0 Inserting Autochanger res: FileChgr2 bacula-sd: stored_conf.c:699-0 Inserting Device res: FileChgr2-Dev1 bacula-sd: stored_conf.c:699-0 Inserting Device res: FileChgr2-Dev2 baculatest-sd: ERROR TERMINATION at bsys.c:656 Cannot not open pid file. /var/run/bacula-sd.9103.pid ERR=Permission denied 04-Jan 21:39 baculatest-sd: ERROR TERMINATION at bsys.c:656 Cannot not open pid file. /var/run/bacula-sd.9103.pid ERR=Permission denied + RETVAL=1 + echo bacula-sd bacula-sd + exit 1 ----------------------------------------------------------------------- It looks like I missed also make the change here: root@baculatest:/etc/bacula# grep "/var/run" /etc/bacula/bacula-sd.conf Pid Directory = "/var/run" After making this change, I try again: ----------------------------------------------------------------------- root@baculatest:/etc/bacula# sh -x /etc/init.d/bacula-sd start + NAME=bacula-sd + DESC=Bacula Storage Daemon + DAEMON=/usr/sbin/bacula-sd + BUSER=bacula + BGROUP=bacula + BOPTIONS=-c /etc/bacula/bacula-sd.conf -v -f -d100 + BPORT=9103 + PATH=/sbin:/bin:/usr/sbin:/usr/bin + test -f /usr/sbin/bacula-sd + getent services bacula-sd + [ -n bacula-sd 9103/tcp ] + awk+ { gsub("/tcp","",$2); print $2; } getent services bacula-sd + BPORT=9103 + [ -f /etc/default/bacula-sd ] + PIDFILE=/var/run/bacula/bacula-sd.9103.pid + [ xbacula != x ] + USERGRP=--chuid bacula + [ xbacula != x ] + USERGRP=--chuid bacula:bacula + RETVAL=0 + echo -n Starting Bacula Storage Daemon: Starting Bacula Storage Daemon: + start-stop-daemon --start --quiet --pidfile /var/run/bacula/bacula-sd.9103.pid --chuid bacula:bacula --exec /usr/sbin/bacula-sd -- -c /etc/bacula/bacula-sd.conf -v -f -d100 bacula-sd: address_conf.c:275-0 Initaddr 0.0.0.0:9103 bacula-sd: stored_conf.c:699-0 Inserting Director res: baculatest-mon bacula-sd: stored_conf.c:699-0 Inserting Device res: FileChgr1-Dev2 bacula-sd: stored_conf.c:699-0 Inserting Autochanger res: FileChgr2 bacula-sd: stored_conf.c:699-0 Inserting Device res: FileChgr2-Dev1 bacula-sd: stored_conf.c:699-0 Inserting Device res: FileChgr2-Dev2 baculatest-sd: jcr.c:132-0 read_last_jobs seek to 192 baculatest-sd: jcr.c:139-0 Read num_items=0 baculatest-sd: bnet_server.c:87-0 Addresses 0.0.0.0:9103 baculatest-sd: stored.c:573-0 calling init_dev /tmp baculatest-sd: dev.c:343-0 init_dev: tape=0 dev_name=/tmp baculatest-sd: stored.c:575-0 SD init done /tmp baculatest-sd: acquire.c:674-0 Attach 0x68001c18 to dev "FileChgr1-Dev1" (/tmp) baculatest-sd: stored.c:573-0 calling init_dev /tmp baculatest-sd: dev.c:343-0 init_dev: tape=0 dev_name=/tmp baculatest-sd: stored.c:575-0 SD init done /tmp baculatest-sd: acquire.c:674-0 Attach 0x68002be8 to dev "FileChgr1-Dev2" (/tmp) baculatest-sd: stored.c:573-0 calling init_dev /tmp baculatest-sd: dev.c:343-0 init_dev: tape=0 dev_name=/tmp baculatest-sd: stored.c:575-0 SD init done /tmp baculatest-sd: acquire.c:674-0 Attach 0x68003bb8 to dev "FileChgr2-Dev1" (/tmp) baculatest-sd: stored.c:573-0 calling init_dev /tmp baculatest-sd: dev.c:343-0 init_dev: tape=0 dev_name=/tmp baculatest-sd: stored.c:575-0 SD init done /tmp baculatest-sd: acquire.c:674-0 Attach 0x68004b88 to dev "FileChgr2-Dev2" (/tmp) ----------------------------------------------------------------------- Success!! > [ASIDE: I used the bacula-ctl-* scripts in the bacula distribution, are you?] I installed the startup scripts using: ----------------------------------------------------------------------- root@baculatest:/usr/src/bacula/bacula# make install-autostart-sd (cd platforms && make DESTDIR= install-autostart-sd || exit 1) make[1]: Entering directory '/usr/src/bacula/bacula/platforms' make[2]: Entering directory '/usr/src/bacula/bacula/platforms/debian' Installing bacula-sd boot script ... Installing bacula-sd symlinks ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults make[2]: Leaving directory '/usr/src/bacula/bacula/platforms/debian' make[1]: Leaving directory '/usr/src/bacula/bacula/platforms' ----------------------------------------------------------------------- root@baculatest:/usr/src/bacula/bacula# make install-autostart-dir (cd platforms && make DESTDIR= install-autostart-dir || exit 1) make[1]: Entering directory '/usr/src/bacula/bacula/platforms' make[2]: Entering directory '/usr/src/bacula/bacula/platforms/debian' Installing bacula-dir boot script ... Installing bacula-dir symlinks ... update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults make[2]: Leaving directory '/usr/src/bacula/bacula/platforms/debian' make[1]: Leaving directory '/usr/src/bacula/bacula/platforms' ----------------------------------------------------------------------- root@baculatest:/var/log/bacula# systemctl enable bacula-sd Synchronizing state for bacula-sd.service with sysvinit using update-rc.d... Executing /usr/sbin/update-rc.d bacula-sd defaults Executing /usr/sbin/update-rc.d bacula-sd enable ----------------------------------------------------------------------- root@baculatest:/var/log/bacula# systemctl enable bacula-dir Synchronizing state for bacula-dir.service with sysvinit using update-rc.d... Executing /usr/sbin/update-rc.d bacula-dir defaults Executing /usr/sbin/update-rc.d bacula-dir enable ----------------------------------------------------------------------- > I found it took quite a while to get the startup scripts working properly > since they were missing the LSB stuff and the creation of the pidfile > directory > and subsys directory. I found that they would work when tested by hand, but > not > during actual reboots until I had made code changes and fixed the behavior. 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? 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. Thank you very much for your suggestions! They were very helpful! Best regards, Daniel
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------------
_______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users