Полезная информация


NAME

fork - create a new process just like this one


SYNOPSIS

fork


DESCRIPTION

Does a fork(2) system call. Returns the child pid to the parent process, 0 to the child process, or undef if the fork is unsuccessful.

Note: unflushed buffers remain unflushed in both processes, which means you may need to set $| ($AUTOFLUSH in English) or call the autoflush() method of IO::Handle to avoid duplicate output.

If you fork() without ever waiting on your children, you will accumulate zombies:

    $SIG{CHLD} = sub { wait };

There's also the double-fork trick (error checking on fork() returns omitted);

    unless ($pid = fork) {
        unless (fork) {
            exec "what you really wanna do";
            die "no exec";
            # ... or ...
            ## (some_perl_code_here)
            exit 0;
        }
        exit 0;
    }
    waitpid($pid,0);

See also the perlipc manpage for more examples of forking and reaping moribund children.

Note that if your forked child inherits system file descriptors like STDIN and STDOUT that are actually connected by a pipe or socket, even if you exit, then the remote server (such as, say, httpd or rsh) won't think you're done. You should reopen those to /dev/null if it's any issue.


DISCLAIMER

We are painfully aware that these documents may contain incorrect links and misformatted HTML. Such bugs lie in the automatic translation process that automatically created the hundreds and hundreds of separate documents that you find here. Please do not report link or formatting bugs, because we cannot fix per-document problems. The only bug reports that will help us are those that supply working patches to the installhtml or pod2html programs, or to the Pod::HTML module itself, for which I and the entire Perl community will shower you with thanks and praises.

If rather than formatting bugs, you encounter substantive content errors in these documents, such as mistakes in the explanations or code, please use the perlbug utility included with the Perl distribution.

--Tom Christiansen, Perl Documentation Compiler and Editor


Return to the Perl Documentation Index.
Return to the Perl Home Page.