Skip to main content

How to run Bash commands in parallel and wait before all commands finished

In this article i will explain how you can run commands in parallel and make sure you wait until all commands and have finished and then move forward.


Say you have a script which downloads few files or yu have to compile different maven project(independent of each other) or something else which can run in parallel and you have got a good machine which can run these tasks in parallel so that overall you can run the full task in lowest time.

For this you can use back ground task and wait from unix.

When you add & to any command that command runs in background

What is wait command?
wait is a built-in command of Linux that waits for completing any running process. wait command is used with a particular process id or job id. When multiple processes are running in the shell then only the process id of the last command will be known by the current shell. If wait command is executed this time, then it will be applied for the last command.

If no process id or job id is given with wait command then it will wait for all current child processes to complete and returns exit status.

Here goes an example


echo First Group:
command A &
command B &
command C &
wait

#Command D will not run untill Command A,B, C all finished
echo Second Group:

command D &
command E &
wait

#Command F will not run untill Command A,B, C,D and E all finished
command F 


Comments

  1. I like your all post. You have done really good work. Thank you for the information you provide, it helped me a lot. I hope to have many more entries or so from you.
    Very interesting blog.visit my wepsite https://vstking.net/

    JetBrains PhpStorm Crack

    Resolume Arena crack

    SmartDraw crack

    Wondershare Filmora crack

    ReplyDelete

Post a Comment

Popular posts from this blog

How to add custom user attributes in keycloak and access them in spring boot application

Sometime it may be possible you want to add more parameters to standard registration page of keyloak for your users and aaccess that data in your spring boot application. This artical will show step by steps on how to add such extra attributes. What is Keycloak Keycloak is an open source software product to allow single sign-on with Identity Management and Access Management aimed at modern applications and services, to learn more visit  h ttps://www.keycloak.org/ What is Spring boot Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". To learn more visit  https://spring.io/projects/spring-boot To add an extra attribute in keyclkoak server you will need to edit actuall html template and then registaer new attribute in json response so that it will be available on client. Edit HTML template Lets assume we want to add mobile number on default registration page. Go to Keycloak home installation directory edit fil

Static and final, when and how to use

Usually when some one ask a simple question when you will make variable or function as static , a simple answer comes to mind   Variables : when i want to make single instance of that variable shared across all objects of this class. Good answer :)  Functions : When i want to access a function of class without creating its object. Good answer :)  Currently not talking about classes  Both are good answer but not complete. There are more things static do behind the screen then things mentioned above. Static fields will not be serialised. Check Following code Class ClassWithStaticFunction{ public void doSomething(){ ...     doSomethingMore(); ... } private void doSomethingMore(){ ... ... } } In above example a developer can say i can't make it better performance unless you tell me what these functions are doing(... lines), but that's incorrect you can make it performant without knowing about what goes inside it.  When a function is made static as a develo

How to create java maven project in intelij

Open intellij Create a new java maven project in intellij . Select Maven type, Select JDK you want to use and click Next. Enter GroupId and ArtifactId, click Next Select project Location and click finish Intelij will display a warning, just press Ok. Once project is created , a popup may appear asking for auto import, select "Enable Auto Import" You will have a project created, looking something like this Note: I have created these instructions using, Instruction for other OS or intellij Version shouldn't be much different, if you need instruction for other version leave a comment and i will try to come up with another set of instructions. Intellij 2017.2.1 Java 1.8 Mac OS