[CentOS] parallel bash scripts

Ali Corbin ali.corbin at gmail.com
Wed Mar 28 12:21:21 EDT 2012


I solved a similar problem by installing gnu parallel on my system.
It did everything that I wanted, and better than I would have coded.
Ali

On Tue, Mar 27, 2012 at 6:37 PM, Mark LaPierre <marklapier at aol.com> wrote:

> Check out the redirection at the end of each command.  1>&2 redirects
> the standard out of your child command to the standard error which then
> appears in the parent shell.  At the end the last & launches your
> command into a background shell and then moves on to launch the next
> command.  The redirections don't care if the command ever terminates.
>
> The result is that both commands are launched and the parent shell
> terminates leaving the standard error attached to the terminal that the
> parent was launched in.
>
> On 03/27/2012 09:08 PM, bruce wrote:
> > marklapier at aol.com
> >
> > hey mark....
> >
> > what you have, appears to be pretty close to what i had... except my
> > tests never ended... the loops are infinite...
> >
> > can i do a fpaste and have you take a look at what i have?
> >
> > -btuce
> >
> >
> > On Tue, Mar 27, 2012 at 9:00 PM, Mark LaPierre<marklapier at aol.com>
>  wrote:
> >> On 03/27/2012 05:25 PM, bruce wrote:
> >>>
> >>> hi.
> >>>
> >>> got a couple of test bash scripts.
> >>>
> >>> dog.sh, cat.sh
> >>> each script runs the underlying php in an endless loop.
> >>>
> >>> I'm trying to figure out how to run the scripts in parallel, from the
> >>> same parent shell script. something like:
> >>>
> >>> test.sh
> >>>
> >>>
> >>> where dog.sh would be :
> >>> --------------------------------
> >>> while true
> >>> do
> >>>    pgrep dog
> >>>    if [ $? -ne 0 ]
> >>>    then
> >>>      /dog.php
> >>>    fi
> >>> sleep 5
> >>> done
> >>>
> >>> my current tests, run dog.sh, which runs the dog.php ... but the test
> >>> never gets to run cat.sh
> >>>
> >>> thoughts/comments...
> >>>
> >>> thanks
> >>
> >> Hey Bruce,
> >>
> >> Do you mean to run these subprograms in parallel or in series?
> >>
> >> cat.sh
> >> #! /bin/bash
> >>
> >> CAT=0
> >> until [ $CAT -eq 10 ]
> >> do
> >> echo "Inside a dog it's too dark to read. $CAT"
> >> CAT=$[$CAT + 1]
> >> sleep 2
> >> done
> >>
> >>
> >> dog.sh
> >> #! /bin/bash
> >>
> >> DOG=0
> >> until [ $DOG -eq 10 ]
> >> do
> >> echo "Next to a dog a book is man's best friend. $DOG"
> >> DOG=$[$DOG + 1]
> >> sleep 2
> >> done
> >>
> >>
> >> test.sh
> >> #! /bin/sh
> >>
> >> /home/mlapier/test/dog.sh 1>&2&
> >> /home/mlapier/test/cat.sh 1>&2&
> >>
> >>
> >> [mlapier at mushroom test]$ ./test.sh
> >> [mlapier at mushroom test]$ Next to a dog a book is man's best friend. 0
> >> Inside a dog it's too dark to read. 0
> >> Next to a dog a book is man's best friend. 1
> >> Inside a dog it's too dark to read. 1
> >> Next to a dog a book is man's best friend. 2
> >> Inside a dog it's too dark to read. 2
> >> Next to a dog a book is man's best friend. 3
> >> Inside a dog it's too dark to read. 3
> >> Next to a dog a book is man's best friend. 4
> >> Inside a dog it's too dark to read. 4
> >> Next to a dog a book is man's best friend. 5
> >> Inside a dog it's too dark to read. 5
> >> Next to a dog a book is man's best friend. 6
> >> Inside a dog it's too dark to read. 6
> >> Next to a dog a book is man's best friend. 7
> >> Inside a dog it's too dark to read. 7
> >> Next to a dog a book is man's best friend. 8
> >> Inside a dog it's too dark to read. 8
> >> Next to a dog a book is man's best friend. 9
> >> Inside a dog it's too dark to read. 9
> >>
> >>
> >>
> >> --
> >> users mailing list
> >> users at lists.fedoraproject.org
> >> To unsubscribe or change subscription options:
> >> https://admin.fedoraproject.org/mailman/listinfo/users
> >> Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
> >> Have a question? Ask away: http://ask.fedoraproject.org
>
> _______________________________________________
> CentOS mailing list
> CentOS at centos.org
> http://lists.centos.org/mailman/listinfo/centos
>


More information about the CentOS mailing list