You don't need to make a daemon for the most part you can use nohup (see man 1 nohup). nohup protects your process from getting the signal HUP when you disconnect your terminal (eg close your ssh client). This will allow your perl script should keep running. My Debian box's nohup appends output of the script to nohup.out. So if your script spews information out, watch the size of nohup.out files.

If you still want to create a daemon here is some code I stumbled on and saved for a rainy day. I honestly can't remember the source site on the web. (If you know it and I should put it here let me know!)

use POSIX qw(setsid); chdir '/' or die "Can't chdir to /: $!"; umask 0; open STDIN, '/dev/null' or die "Can't read /dev/null: $!"; #open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!"; open STDERR, '>/dev/null' or die "Can't write to /dev/null: $!"; defined(my $pid = fork) or die "Can't fork: $!"; exit if $pid; #parent dies #Here is the daemon part setsid or die "Can't start a new session: $!"; while(1) { sleep(5); print "Hello...\n"; }
--blm--

Please note: You use my code at your risk. There are no garantees implied or otherwise.


In reply to Re: how to make a demon in perl? by blm
in thread how to make a demon in perl? by Sihal

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.