Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Stop,Suspend,Resume By Pid

by Anonymous Monk
on Apr 23, 2013 at 09:09 UTC ( #1030081=perlquestion: print w/replies, xml ) Need Help??
Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks..

I want to stop , suspend,pause and resume a running script using pid on Windows. How can I go about it??

I have a script which is invoked by a Gui build using PHP , Now the user wants to pause , resume and kill functionality.So i thought of writing a new script which accomplish this task by fetching the pid of already running script and then stops or pauses/resumes accordingly. Please suggest other options.

Replies are listed 'Best First'.
Re: Stop,Suspend,Resume By Pid
by roboticus (Chancellor) on Apr 23, 2013 at 12:25 UTC
Re: Stop,Suspend,Resume By Pid
by Random_Walk (Prior) on Apr 23, 2013 at 10:53 UTC

    Signals would be a good way to approach this on a *nix OS, but Windows does not really do that. Can the target script listen on a socket or look for some pid.flag file(s) and then suspend/resume or exit itself? Can you give us some idea of what the target process is doing?


    Pereant, qui ante nos nostra dixerunt!

      The target process reading outlook files(.pst) files from the windows system.As this takes quite a lot of time and sys resources so a mechanism to pause it is needed(when load on machine is high) and then resume when some of its resources are free.

        How about setting the process to a low priority so the OS scheduler can do it for you?


        Pereant, qui ante nos nostra dixerunt!
Re: Stop,Suspend,Resume By Pid
by sundialsvc4 (Abbot) on Apr 23, 2013 at 11:33 UTC

    One thought about “stop / suspend / resume” functionality is that you don't know exactly what the process is doing at the moment you suspe

    roblem exists with resum

    ... it just freezes in its tracks, not necessarily at what you would consider to be an appropriate stopping po

    So, I think, what you really want to do is to use some kind of a semaphore system, like a traffic light.   Each process, during its usual work-cycle, periodically tests to see if the light is red.   If so, it pauses, in an orderly fashion, perhaps indicating through another semaphore that it has now done so, and waits for the light to turn green.   Ditto for indicating that the process should terminate itself.   It will not do so “instantly,” but it will do so very quickly and in an orderly fashion.   When pausing, it should do this by blocking on an appropriate (Perl ...) operating-system mutual exclusion object, so that it does not consume CPU time while waiting.   There are many ways to implement this.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1030081]
Approved by Corion
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2018-02-19 06:42 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (258 votes). Check out past polls.