How can I make a program keep running even after I logout?
Rae Kim
z49x2vmq at gmail.com
Wed Dec 15 14:39:26 PST 2004
Thank you all guys..
I've tried daemon, nohup and Nicolas' csh method
all works fine.
On Wed, 15 Dec 2004 13:42:52 -0600, Nikolas Britton
<freebsd at nbritton.org> wrote:
> Hi Rae, I asked this very same question back in ("Job Control") back in
> November, first thing to know is that the default for the csh shell is
> not to hangup background jobs when you exit the shell. here is all the
> meat from that tread:
>
> ###This is the way I thought up on my own Rae###
> $ ssh localhost
> Password: ****
> Last login: Mon Nov 22 06:13:59 2004 from localhost
> Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
> The Regents of the University of California. All rights reserved.
>
> FreeBSD 5.3-RELEASE-p1 (SPECTRA) #0: Sat Nov 20 23:30:17 CST 2004
>
> Welcome to FreeBSD!
>
> $ su
> Password: ****
> spectra# cvsup -g -L 2 /root/ports-supfile > /root/ports-supfile.log&
> [1] 71669
> spectra# exit
> exit
> $ exit
> Connection to localhost closed.
> $ tail /root/ports-supfile.log
> Add delta 1.25 2004.11.21.22.03.48 marcus
> Edit ports/x11-toolkits/py-gnome2/Makefile
> Add delta 1.78 2004.11.20.17.18.17 kwm
> Edit ports/x11-toolkits/py-gnome2/distinfo
> Add delta 1.28 2004.11.20.17.18.17 kwm
> Edit ports/x11-toolkits/py-gnome2/pkg-plist
> Add delta 1.31 2004.11.20.17.18.17 kwm
> Updating collection ports-x11-wm/cvs
> Shutting down connection to server
> Finished successfully
> $ exit
> ----------------------
> Presumably you've also nohup -ed the background job too....:-)
>
> anyway have a look at 'screen' to give you virtual terminals that you
> drop out of and back into when you want to.
> -----------------------
> yes screen will do that, detach first before logout, then re-attach when
> you want o get back to that session. Also no need to background the job,
> as screen will just keep the job running after detach anyway..
>
> ----------------------
> ###This was the one I liked the most Rae###
> >From work:
> # nohup foobar >& foobar.log &
>
> Back home:
> # tail -f foobar.log
>
> Ruben
> --------------------
> If all you want to do is inspect the output from your command, then
> simply use script(1) to save a transcript of the output. script(1)
> comes with the system. Use it like this:
>
> % cd /usr/ports/x11/xorg
> % script /tmp/make.out sudo make install
>
> And /tmp/make.out will contain a transcript of everything that appears
> on your screen during the course of doing that job.
>
> Cheers,
>
> Matthew
> -------------------
> Thanks....
>
> # nohup foobar >& foobar.log &
> ^^^^ ^^^
>
> Why'd you do it like that, how is it diffrent from this way?:
> # nohup foobar > foobar.log &
> ---------------
> His example redirects both stdout and stderr to foobar.log, while yours
> only redirect stdout. (Note that ">&" is a csh-specific operator. The
> equivalent for a Bourne-shell derivative would be:
> nohup foobar > foobar.log 2>&1 &
> I.e. redirecting stdout to foobar.log and then redirecting file
> descriptor 2 (stderr) to wherever file descriptor 1 (stdout) goes to
> (foobar.log in this case.)
>
> When used with the nohup command I believe the redirection of stderr
> is unnecessary since the manpage for nohup(1) says "If standard error is a
> terminal, it is directed to the same place as the standard output."
>
More information about the freebsd-questions
mailing list