Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

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/ &
  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/

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

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

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (15)
As of 2015-12-01 13:31 GMT
Find Nodes?
    Voting Booth?

    My keyboard shows this many letters:

    Results (11 votes), past polls