How do I make install clean a port in the background

Jonathan Horne freebsd at dfwlp.com
Thu Aug 9 14:13:25 PDT 2007


On Thursday 09 August 2007 15:31:01 Bill Moran wrote:
> In response to Reid Linnemann <lreid at cs.okstate.edu>:
> > Written by Sean Murphy on 08/09/07 15:15>>
> >
> > > How do I make install clean a port in the background?  I used
> > >
> > > cd /usr/ports/www/apache22
> > > make install clean &
> > >
> > > it returns the pid but then compiles in the foreground
> > >
> > > What am I doing wrong?
> > >
> > > _______________________________________________
> > > freebsd-questions at freebsd.org mailing list
> > > http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> > > To unsubscribe, send any mail to
> > > "freebsd-questions-unsubscribe at freebsd.org"
> >
> > You're just seeing the output in the foreground, since the stdio and
> > stderr for that process are still directed to the terminal. If you are
> > using bash, you could "make install clean &> /dev/null &" to have the
> > process operate in the background and direct all output the the
> > bitbucket. I don't know the analog for other shells.
>
> That's only going to help so much.  Most ports are going to generate
> compiler warnings that go to stderr, which will still spam your screen.
>
> First off, I recommend directing to a file instead of /dev/null.  That way
> if it fails, you have the output to review.  Secondly, redirect both
> standard out and standard error.  In bourne shells:
>
> make install clean >~/buildlog.txt 2>&1 &

i use sysutils/screen.  the entire process is stuck into a new shell, seperate 
from the one you started the command in.  so, for instance:

cd /usr/ports/www/apache22
screen make install clean

then, you can background the screen with:

ctrl-a-d

i use screen all the time.  one of the most common uses i find for it, is when 
i start a process on my box at home while at the office, and i know its going 
to run way past end-of-day.  ill screen it, and then pick the screen'd 
terminal back up at home again, with a:

screen -r
or
screen -rd [pid]

(and dont forget to man screen!)

cheers,
-- 
Jonathan Horne
http://dfwlpiki.dfwlp.org
freebsd at dfwlp.com


More information about the freebsd-questions mailing list