Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re: Persistent perl

by Argel (Prior)
on Mar 25, 2006 at 00:31 UTC ( #539124=note: print w/ replies, xml ) Need Help??

in reply to Persistent perl

Sounds like you want to make it a daemon:

use IO::Socket; use POSIX qw(WNOHANG setsid); sub daemonize { $SIG{CHLD} = 'IGNORE'; # Configure to autoreap zombies die "Can't fork" unless defined ( my $child = fork ); # FORK +<<<<<<<<<<<< CORE::exit(0) if $child; # Parent exits setsid(); # Become session leader open( STDIN, "</dev/null" ); # Detach STDIN from shell open( STDOUT, ">/dev/null" ); # Detach STDOUT from shell open( STDERR, ">&STDOUT" ); # Detach STDERR from shell chdir '/tmp'; # Change working directory umask(0); # Reset umask $ENV{PATH} = '/bin:/sbin:/usr/sbin'; # Reset PATH }
Note: Verify your system supports autoreapping of zombies.

You can read more in this thread.

Comment on Re: Persistent perl
Download Code
Re^2: Persistent perl
by njcodewarrior (Pilgrim) on Mar 25, 2006 at 01:23 UTC

    Do I have to be the superuser/sysadmin to run the daemon?

      The code doesn't do anything special that other programs do not do for other reasons. Common things like manipulating filehandles, changing environment variables, and forking. There are no daemons under UNIX in the stict sense. It's just a concept, a term used to set expectations for the reader. So to answer your question any user can do it (though, other aspects of your program may require root).

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (5)
As of 2014-09-02 02:59 GMT
Find Nodes?
    Voting Booth?

    My favorite cookbook is:

    Results (18 votes), past polls