Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re: mysterious fork() failure

by Zaxo (Archbishop)
on Jan 05, 2002 at 03:51 UTC ( #136421=note: print w/replies, xml ) Need Help??

in reply to mysterious fork() failure

The possible reasons for this are in the code you don't show. When you fork, you cannot know whether the child or parent runs first. If the parent runs first, and exits immediately, the child will be killed by the system's init process before it runs. Be sure to call wait() before exiting the parent. You should call exit() at the end of the child's code.

# create new directory here if ( !defined( $pid = fork() ) ) { # log fork() failure here # remove directory here } elsif ($pid == 0) { # remove directory here exit 0; } wait if $pid;

Update: Fixed pid logic according to dws's prescription

After Compline,

Replies are listed 'Best First'.
Re: Re: mysterious fork() failure
by fokat (Deacon) on Jan 05, 2002 at 23:23 UTC
    "...the child will be killed by the system's init process before it runs." is not true in Unix systems.

    If the parent exits/dies before the child, init will become its parent and wait() for it.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://136421]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (3)
As of 2022-05-22 04:27 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (79 votes). Check out past polls.