http://www.perlmonks.org?node_id=935371


in reply to Daemon crashes the system

RMGir, and what i do now? Sorry, but my english is weak

Replies are listed 'Best First'.
Re^2: Daemon crashes the system
by RMGir (Prior) on Nov 02, 2011 at 12:30 UTC
    Don't apologize - your English is far superior to my Polish (thank you, Google Translate, for helping me identify that as Polish :) )

    I think all you need to do is add the following lines just below your last "use" statement:

    use Config; # copied from perldoc Config my %sig_num; my @sig_name; unless($Config{sig_name} && $Config{sig_num}) { die "No sigs?"; } else { my @names = split ' ', $Config{sig_name}; @sig_num{@names} = split ' ', $Config{sig_num}; foreach (@names) { $sig_name[$sig_num{$_}] ||= $_; } } # ignore child signals, automatically reaping child processes $SIG{$sig_num{CHLD}} = 'IGNORE';
    Of course, you'll have to test this, but I think it might solve your issue.

    Mike
      RMGir, your way isn't working.
        jjimmy, how is it failing?

        Is there an error in my code, or is your program still failing to fork in the same way it was before?

        If it's still failing to fork, it's possible that there are too many php processes still running at one time...

        Do you know how how many php processes are started before fork fails? Do all of those php processes finish running, or are some of them or all of them still running when the daemon program dies?


        Mike
Re^2: Daemon crashes the system
by jjimmy (Initiate) on Nov 02, 2011 at 12:28 UTC
    Where i have to add?: $SIG{CHLD} = 'IGNORE';