Hello David I know that is not an elegant way, but you could try to execute a script calling another one I don't know if will works, but you can try.
#!/bin/bash nohup caffeinate -s bacula-idle-watch.sh >/dev/null 2>&1 </dev/null & exit 0 Best regards *Wanderlei Hüttel* http://www.bacula.com.br Em seg, 7 de jan de 2019 às 17:06, David Brodbeck <brodb...@math.ucsb.edu> escreveu: > Hmm, good catch on the redirect, but it still doesn't work. Neither does > adding the exec line. > > Running lsof on the caffeinate process shows stdin, stdout, and stderr are > properly connected to /dev/null; same with bacula-idle-watch.sh. I can't > determine what the bacula-caffeinate.sh script's file handles are because > by the time I get a chance to run lsof, it's already exited and become a > zombie. bacula-fd continues to wait for it none the less. > > Is there any way to tell bacula-fd to not wait for script output, as in > the 7.4.x behavior? I realize I'm not really using this functionality for > the intended purpose, but I can't be the only one with this sort of use > case. > > On Mon, Jan 7, 2019 at 6:26 AM Martin Simmons <mar...@lispworks.com> > wrote: > >> Your script redirects stderr to the original stdout of the script. To >> redirect both to /dev/null, the 2>&1 must follow the >/dev/null like this: >> >> nohup caffeinate -s bacula-idle-watch.sh >/dev/null 2>&1 </dev/null & >> >> Bacula 9.2.0 collects the stderr from ClientBeforeJob commands, but Bacula >> clients running 7.4.x would have worked because they discard it. >> >> If that doesn't fix it, then try redirecting the shell's stdio as well: >> >> exec >/dev/null 2>&1 </dev/null >> nohup caffeinate -s bacula-idle-watch.sh & >> >> __Martin >> >> >> >>>>> On Fri, 4 Jan 2019 11:36:06 -0800, David Brodbeck said: >> > >> > This is driving me nuts because I feel like it should be straightforward >> > and I must be missing something basic. >> > >> > I want to launch the caffeinate command on OS X before starting a job. >> > Caffeinate takes a command as an argument, then goes into the background >> > and keeps the machine awake until the command exits. I use this after >> > waking machines up using a WOL script. >> > >> > When tested from the command line, caffeinate immediately backgrounds >> > itself. However, when I try to run it as a Bacula ClientBeforeJob >> script, >> > bacula-fd waits around forever for caffeiniate to exit. >> > >> > Here's what I've tried so far: >> > - Having bacula run a script that then runs caffeinate. >> > - Having bacula run a script that then runs caffeinate using nohup. >> > - Having the script redirect stdin, stdout, and stderr of caffeinate to >> > /dev/null >> > - Adding an ampersand after the script in the bacula ClientBeforeJob >> > specification. >> > >> > What invariably happens is the bash process created by bacula becomes a >> > zombie and waits for caffeinate to exit. Inspecting the caffeinate >> process >> > with lsof shows all of the file handles are redirected to /dev/null as >> > expected, so I don't think this is a case of stdin or stdout causing >> > problems. In all cases the only way to get bacula to finish the backup >> is >> > to kill the script that caffeinate is running. >> > >> > I can't figure out why I can't get bacula-fd to move on after the script >> > goes into the background. When I run the script manually from the >> command >> > line it backgrounds immediately. >> > >> > The oddest thing is this worked fine on clients using bacula-fd version >> > 7.4.x, but fails on a client using 9.2.0. >> > >> > Here's the script bacula-fd runs, as it currently stands: >> > >> > -- >> > #!/bin/bash >> > >> > PATH=/bin:/usr/bin:/usr/local/bin >> > >> > # Script to prevent system sleep while bacula is working. >> > # see bacula-idle-watch.sh for details. >> > >> > nohup caffeinate -s bacula-idle-watch.sh 2>&1 >/dev/null </dev/null & >> > -- >> > >> > Here's the contents of bacula-idle-watch.sh; it just waits to exit until >> > there's no bacula network connection anymore. caffeinate will terminate >> > once the script exits. >> > >> > -- >> > #!/bin/sh >> > >> > # This script delays a few minutes, then loops, checking for bacula-fd >> > # connections. When there are none, it exits. >> > # This is meant to be run with caffeinate in a bacula before-job script, >> > # e.g. "caffeinate -s bacula-idle-watch.sh" >> > # This will prevent the machine from idle-sleeping until bacula >> finishes. >> > >> > PATH=/bin:/usr/bin:/usr/sbin >> > >> > # We put a long delay here in case it takes bacula a while to get going. >> > sleep 300 >> > >> > # Now loop while looking at the network connection. >> > # We limit checks to once every five minutes because worst-case the >> machine >> > # just waits an extra five minutes to sleep. >> > while ( netstat -an | grep '\.9102.*ESTABLISHED' >/dev/null ) ; do >> > sleep 300 >> > done >> > >> > # Once the script exits, the wake-lock is released. >> > exit 0 >> > -- >> > >> > >> > -- >> > David Brodbeck >> > System Administrator, Department of Mathematics >> > University of California, Santa Barbara >> > >> > > > -- > David Brodbeck > System Administrator, Department of Mathematics > University of California, Santa Barbara > > _______________________________________________ > Bacula-users mailing list > Bacula-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bacula-users >
_______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users