I have written a few scripts that display monitoring counters on the
hardstatus line.

Thinking I would avoid the overhead of starting new processes,
particularly for stuff that requires frequent updates in order to be
relevant ..  such as CPU utilization, I thought I'd write scripts that
run in the background & iterate for ever over the following: acquire
data, format & write to stdout, sleep a while, etc.

The corresponding backtick commands in my .screenrc specify values of
zero for "lifespan" & "autorefresh" - as documented on the screen man
page:

"If both the lifespan and the autorefresh parameters are zero, the
backtick program is expected to stay in the background and generate
output once in a while.  In this case, the command is executed right
away and screen stores the last line of output.  If  a new line gets
printed screen will automatically refresh the hardstatus or the
captions."

The problem is that, if for some reason or other, I terminate the
GNU/sreen instance, the orphaned processes still run under the init
process.

As I was testing the layout of my hardstatus line the other day, I
eventually noticed--thanks to my monitoring, and the laptop's fan
kicking in :-) .. that I was using dollops of ram & cpu cycles .. well,
it turned out some 20-30 instances of my scripts and the related sleep
subprocesses were still running in the background.

Whenever I shut down a screen instance (manually terminating each
individual application), I would need to terminate those scripts as
well.. at the same time GNU/screen issues the "screen terminating"
message.

The problem is how?

Has anyone gone down this road before and found a clean solution?

Thanks,

CJ


_______________________________________________
screen-users mailing list
screen-users@gnu.org
http://lists.gnu.org/mailman/listinfo/screen-users

Reply via email to