I am writing an abstraction layer for a Database/OS/System monitoring tool that is going to run on OpenVMS/Windows/UNIX(es).

One tricky piece that I will rub up against shortly is the inability to "fork()" with OpenVMS. (This I find quite crippling, now that I have begun to think UNIX-process-management-style.)

I want to fire off some time-consuming (Order{min}) tasks and I don't want to block on them... but, I will need to get their output.

On UNIX/Win, I am able to fork off some jobs and select on the reading end of their pipe(s) to see when the children are ready to talk.

On OpenVMS???, I am envisioning an ugly hack such as:

--Parent opens temp file (using File::Temp),

--Parent writes a perl script to the file (using Data::Dumper to dump objects into evals, etc.),

--Parent uses System() to submit the perl scripts to OpenVMS "Batch" for detached exec,

--Parent opens listening AF_INET (or preferably AF_UNIX if it works) Socket,

--Batch child does its stuff, then connects to Parent via socket, says its piece, and dies.

Comments? Better ideas? Code snippets? Anyone ever had to emulate forking with OpenVMS? Or tackle problem with completely different approach? Anyone ever written a tcp/ip server for VMS?... How the heck did you do it without forking any procs??


In reply to fork() emulation hack for OpenVMS by agarsha

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.