0 Пользователей и 1 Гость просматривают эту тему.
sub daemon { my $self = shift; my @fh = ( \\*STDIN, \\*STDOUT ); my $path; $self->{\'LogPath\'} eq \'null\' ? $path = $ENV{\'HOME\'} : $path = $self->{\'LogPath\'}; open \\*STDERR, ">$path/error.log"; select( ( select( \\*STDERR ), $| = 1 )[0] ); my $ppid = $$; my $pid = fork && exit 0; !defined $pid && croak "No Fork: ", $!; while ( kill 0, $ppid ) { select undef, undef, undef, .001; } my $session_id = POSIX::setsid(); chdir \'/\' || croak "Could not cd to /", $!; my $oldmask = umask 00; close $_ || croak $! for @fh;}