I am often tempted to create daemons in Perl - programs that essentially run forever*. Examples include various listeners and monitors.

Most of those programs can, and generally are, rewritten by me to run from the crontab, so I can let the OS do the waiting, and my program doesn't have to loop, block or wait. The real benefit of this is that my program exits and returns resources to the OS. It never gets the chance to leak, bloat, and become a burden. Memory allocated to Perl objects may be released to be reused by other Perl objects, but never gets released back to the OS.

But sometimes there is a need for a program to stay resident in memory. Such a program must not leak memory or bloat. In fact it must flatline its resource usage in order for it to continue its existence - long term.

While this holds true for any language in which I implement a daemon, it seems that Perl is particularly unsuited. Have any of you dealt with this issue successfully? Because I sure haven't.



* Forever in this case means until kernel upgrade.


In reply to Perl Daemons by pbeckingham

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.