Jump to content
JockoDundee

What is the best way kill several processes when one returns an error code

Recommended Posts

Let’s say you are running 2 processes from a shared parent process.  If either of the child procs return an erroneous exit code, you need to kill the other one.

the following code does not work of course,  but what is the best way to do it?
I can think of some ugly ways involving watchdog processes, filesystem, clipboard etc, but....

Example()

Func Example()
   
   ;Obviously this doesn't work because RunWait "Waits"
   
    Local $i1 = RunWait("proc1.exe")
    Local $i2 = RunWait("proc2.exe")
    
    If $i1=-1 Then ProcessClose("proc2.exe") 
    If $i2=-1 Then ProcessClose("proc1.exe")
    
EndFunc

 

Share this post


Link to post
Share on other sites

You could use IPC (Inter Process Communication) to send status codes from the child processes to the parent process. If any of the child processes sends an error status to the parent process the parent could send shutdown messages to the remaining child processes.

IPC UDFs are available in different flavours in the wiki.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2020-09-05 - Version 1.5.1.1) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2020-06-27 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (NEW 2020-06-27 - Version 1.3.2.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
Task Scheduler (2019-12-03 - Version 1.5.1.0) - Download - General Help & Support - Wiki

Tutorials:
ADO - Wiki, WebDriver - Wiki

 

Share this post


Link to post
Share on other sites

Hmm, or use RunAs or ShellExecute to start and to capture the PID, then check in a loop if the proccess with the pid exists, with ProcessExists ?!

Edit: This should work if you need to close one process.

Edited by Dan_555

~Dan~ :Emu.Zone now with Desktop Pets / DeskMates - (Bugfixed UniScrMate 4.1)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...