Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Writing a Perl Daemon

by cosimo (Hermit)
on Jul 28, 2005 at 08:08 UTC ( [id://478872]=note: print w/replies, xml ) Need Help??


in reply to Writing a Perl Daemon


  1. In your script, a while(1)-like cycle with some kind of sleep or select(undef, undef, undef, [time]) will do.

  2. Use a lock file and write your pid ($$) in it. In this way, daemon startup code can check for lock file, and if the pid stored in it is not alive (kill 0, $pid) you can safely start the current instance and overwrite the pid file.

  3. A simple way is to append a line in your /etc/rc.d/rc.local file, like the following:
    # Start my daemon... logger "My Daemon starting. All you out there, watch out!" /mypath/mydaemon.pl &
  4. AFAIK, it isn't possible to "tolerate" a SIGKILL. However, you can restart your deamon ASAP. To achieve that, you probably want to modify your /etc/inittab file. In this way, your init process takes care of restarting your daemon when it detects that it is not running. Put a line like this in inittab:
    # Run my daemon in runlevels 345 x:345:respawn:/mypath/mydaemon.pl

Are you running on *nix, are you? :-)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (6)
As of 2024-04-25 10:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found