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

Reply via email to