BobSmokey Posted January 6, 2019 Share Posted January 6, 2019 (edited) Hey there, is there a way to close the client after a script ends? The script is not mine (khal tutorial island) so I cannot use System.exit(); I am launching it using Runtime.getRuntime().exec() in java from a gui [Edit] It would also be nice if I could detect the script has ended to update my database that the account has finished tutorial island Thanks in advance Edited January 6, 2019 by BobSmokey Quote Link to comment Share on other sites More sharing options...
Explv Posted January 6, 2019 Share Posted January 6, 2019 8 minutes ago, BobSmokey said: Hey there, is there a way to close the client after a script ends? The script is not mine (khal tutorial island) so I cannot use System.exit(); I am launching it using Runtime.getRuntime().exec() in java from a gui [Edit] It would also be nice if I could detect the script has ended to update my database that the account has finished tutorial island Thanks in advance I have some poorly written code that does this: https://github.com/Explv/osbot_manager/blob/master/osbot_manager/src/bot_parameters/configuration/Configuration.java#L347 Basically you will need to start the client, find it's PID, then when you want to close the client call taskkill with that PID. Java 9 has a nice process API that allows you to do this more easily, but unfortunately we're stuck with 8 for now 2 Quote Link to comment Share on other sites More sharing options...
BobSmokey Posted January 6, 2019 Author Share Posted January 6, 2019 Dude your scripts are suBLIME dude! Love the AIO 1 Quote Link to comment Share on other sites More sharing options...
Butters Posted January 7, 2019 Share Posted January 7, 2019 You're most likely launching your bots externally, so you can use Java 9 on the external launcher. Little code snippet below shows how you can start the bot, save it's proccess and then close all related instances. ProcessBuilder builder = new ProcessBuilder("java", "-jar" ....); Process process = builder.start(); process.descendants().forEach((process) -> process.destroy()); Quote Link to comment Share on other sites More sharing options...