Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
i'm curious as to how one would make a perl script run as a TSR (terminate and stay resident) program?
more specifically, i'm writing a script that listens on a particular port, and I'd like to be able to start it initially (ie: "perl jdataserver.pl"), and have it print out some diagnostic info, then return user control to the command prompt, but continue running in the background.
should i need to check on it afterward, I'd call it again with a flag ("perl jdataserver.pl -i") and it would print out some status information, then return to the background.
and, should i need to stop it later, i could call it again with a *different* flag ("perl jdataserver.pl -k") to essentially do a clean kill of the process.
i was thinking i could accomplish this sort of effect with two scripts...the server script would periodically lock a file, write status information to it, then unlock it. then the script I call would check for this file, read the status info from it, and display the info...
however, i figure there *has* to be a better way to do this. any ideas?
more specifically, i'm writing a script that listens on a particular port, and I'd like to be able to start it initially (ie: "perl jdataserver.pl"), and have it print out some diagnostic info, then return user control to the command prompt, but continue running in the background.
should i need to check on it afterward, I'd call it again with a flag ("perl jdataserver.pl -i") and it would print out some status information, then return to the background.
and, should i need to stop it later, i could call it again with a *different* flag ("perl jdataserver.pl -k") to essentially do a clean kill of the process.
i was thinking i could accomplish this sort of effect with two scripts...the server script would periodically lock a file, write status information to it, then unlock it. then the script I call would check for this file, read the status info from it, and display the info...
however, i figure there *has* to be a better way to do this. any ideas?
Back to
Seekers of Perl Wisdom