Reply to message «Re: Tee all output to log file?»,
sent 20:28:13 02 February 2011, Wednesday
by Benjamin R. Haskell:
> && exec env doinglogging=true ...
I used to write this as «doinglogging=true exec ...» or with
doinglogging=true
exec ...
Any reason why env command should envoked here I am not aware of?
Original message:
> On Wed, 2 Feb 2011, ZyX wrote:
> > Reply to message «Tee all output to log file?»,
> > sent 02:41:26 02 February 2011, Wednesday
> >
> > by Benjamin R. Haskell:
> >> Is there something straightforward that I'm overlooking? Is there a
> >> commonly used utility for this? (`script` comes to mind, but I
> >> recall klunkiness when trying it in the past.)
> >
> > If you don't like script, maybe you should try screen:
> > (( $+logfile )) && \
> >
> > exec screen -L -c =(echo "logfile $logfile") -m -S script-$0 $0 $@
>
> I find `screen` even more annoying than `script` for scripting purposes,
> wonderful though it is for interactive use.
>
> I really just want the redirection, not the many extra features that
> `screen` adds.
>
> Adding
>
> > Does anybody know, why it does not work when I start screen in detached
> > mode?
>
> Cf. above annoyance. For doing something with Vim under Apache (using
>
> :TOhtml), I recently resorted to this hackery:
> screen -q -d -m -S $sessionname vim -u NONE -N +'so $scriptname'
> (Then, loop, waiting for one of:
> 1: the Vim script to touch a marker file that indicated completion
> 2: a specified timeout, in case something errored out, preventing a
> clean Vim exit
> )
> screen -X -S $sessionname quit
>
>
>
> Despite my annoyance (I'm easily annoyed), I tried your above
> suggestion. It didn't capture stderr, so I added a flag that logging
> was in progress and added a redirect for it (also added '-q' to the
> `screen` commands):
>
> (( $+logfile && ! $+doinglogging )) \
> && exec env doinglogging=true screen -L -c =(echo "logfile $logfile")
> -q -m -S script-$0 $0 $@ (( $+doinglogging )) && exec 2>&1
>
> Seems okay for what I'm doing.
>
> Thanks,
> Ben
Attachment:
signature.asc
Description: This is a digitally signed message part.