Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Writing a Perl Daemon

by cosimo (Hermit)
on Jul 28, 2005 at 08:08 UTC ( #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? :-)


Comment on Re: Writing a Perl Daemon
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (14)
As of 2015-07-06 19:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (81 votes), past polls