Sponsored Content
Operating Systems Linux background processing in BASH Post 302311020 by jville on Monday 27th of April 2009 03:41:00 PM
Old 04-27-2009
background processing in BASH

I have script 3 scripts
1 parent
2 children
child1
child2

In the code below the 2 child processes fire almost Instantaneously in the background, Is that possible to know the status of pass/fail of each process "as it happens" ?

In the present scenario although Child2 failed first ( exit 1 ) the status is not displayed until Child1 is complete.

I would really apprecitate your help.

Mother Process:
Code:
 #!/bin/bash
 
 echo -e " Parent continued process 1"
 echo -e " Parent continued process 2"
 echo -e " ** Kicking off a child process C1** "
 ./child1 &
 t1=$!
 echo -e " Parent continued process 3"
 echo -e " Parent continued process 4"
 echo -e " ** Kicking off a child process C2** "
 ./child2 &
 t2=$!
 
  wait $t1
  if [ $? -ne 0 ]
  then
    echo " Child Process C1 failed !!! "
  fi
 
  wait $t2
  if [ $? -ne 0 ]
  then
    echo " Child Process C2 failed !!! "
  fi
 
 exit 0

Child1
Code:
 
 #!/bin/bash
 echo -e " in child process 1 "
 sleep 2
 echo -e " in child process 2 "
 sleep 2
 echo -e " in child process 3 "
 sleep 7
 exit 0 # success

Child 2
Code:
  #!/bin/bash
 echo -e " in child process 4"
 echo -e " in child process 5"
 echo -e " in child process 6"
 exit 1 # failed

Thanks,
SSR.Smilie

Last edited by otheus; 04-28-2009 at 09:37 AM.. Reason: Please use code tags instead of font tags
 

10 More Discussions You Might Find Interesting

1. Solaris

Best practice to run bash script in background

nohup /bin/bassh $HOME/scripts/test.sh > $HOME/log/test.log 2>&1 & nohup $HOME/scripts/test.sh > $HOME/log/test.log 2>&1 & Which is the good practice to run a script in background of above two ? does the first one will have any overhead on the system ? our system is SunOS 5.10... (2 Replies)
Discussion started by: mmasals
2 Replies

2. Shell Programming and Scripting

background processing in BASH

I have script 3 scripts 1 parent (p1) and 2 children child1 and child2 I have script 3 scripts 1 parent 2 children child1 child2 In the code below the 2 child processes fire almost Instantaneously in the background, Is that possible to know the status of pass/fail of each process... (12 Replies)
Discussion started by: jville
12 Replies

3. Shell Programming and Scripting

bash tee and background threads

Running centos 2.6, I have a bash script in which I'd like to run a number of background threads in parallel, tee'ing the results of the entire script to one file, while tee'ing the result of each background thread to another. Here's what I'm doing, where the number of csv files control the... (1 Reply)
Discussion started by: heatlamp
1 Replies

4. Programming

Unix Shell background processing

So I made my own unix shell, but i want to make a background process when using the & appended to the end, so far most of the commands seem to work (except cd, but thats another story) right now here is what I have got. Im thinking maybe I shouldn't be using switch and maybe switch it to... (27 Replies)
Discussion started by: Mercfh
27 Replies

5. Shell Programming and Scripting

Background tasks in a loop (bash)

I am trying to use a loop to start tasks 0-3, running 0,1,2 in the background with &. FOLDSET=( 0 1 2 3 ) for FOLDSET in ${FOLDSET} do if ; then BACKGRD="&" else BACKGRD="" fi # start task $FOLDSET task1 -nogui -ni -p $PROJ \ epochs=$EPOS ... (3 Replies)
Discussion started by: LMHmedchem
3 Replies

6. Shell Programming and Scripting

BASH - Handling background processes - distributed processing

NOTE: I am using BASH and Solaris 10 for this. Currently in the process of building a script that has a main "watcher" daemon that reads a configuration file and starts background processes based on it's global configuration. It is basically an infinite loop of configuration reading. Some of the... (4 Replies)
Discussion started by: dcarrion87
4 Replies

7. Shell Programming and Scripting

Suppress a background message in Bash

I'm having trouble with part of this bash script in Linux where I respawn a new instance of script and kill the old one to prevent forking (Yes, I know 'exec' will not fork but this needs to be interactive) When the old instance is kill it pops up "Terminated!" in the middle of the new instance... (7 Replies)
Discussion started by: Azrael
7 Replies

8. Shell Programming and Scripting

Parallel processing in bash?

Hi Say I am interested in processing a big data set over shell, and each process individually takes a long time, but many such processes can be pipe-lined, is there a way to do this automatically or efficiently in shell? For example consider pinging a list addresses upto 5 times each. Of... (5 Replies)
Discussion started by: jamie_123
5 Replies

9. Shell Programming and Scripting

Plink (processing multiple commands) using Bash

I'm completely brand new to bash scripting (migrating from Windows batch file scripting). I'm currently trying to write a bash script that will automatically reset "error-disabled" Cisco switch ports. Please forgive the very crude and inefficient script I have so far (shown below). It is... (10 Replies)
Discussion started by: MKANET
10 Replies

10. Shell Programming and Scripting

[Help] Bash script that runs in the background and checks for mails...

Hello! I have got a homework. The bash script runs in the background and checks the user's mailbox and when the user gets a new mail a popup window appears with some text and information about the sender (from who and when).I have no idea how to start, any help would be appreciated! Thank you:) (1 Reply)
Discussion started by: capo2ndfret
1 Replies
wait.h(3HEAD)							      Headers							     wait.h(3HEAD)

NAME
wait.h, wait - wait status SYNOPSIS
#include <sys/wait.h> DESCRIPTION
When a process waits for status from its children using either the wait(3C) or waitpid(3C) function, the status returned can be evaluated with the following macros, defined in <sys/wait.h>. These macros evaluate to integral expressions. The stat argument to these macros is the integer value returned from wait() or waitpid(). WCOREDUMP(stat) If the value of WIFSIGNALED (stat) is non-zero, this macro evaluates to a non-zero value if a core image of the terminated child was created. WEXITSTATUS(stat) If the value of WIFEXITED(stat) is non-zero, this macro evaluates to the exit code that the child process passed to _exit() (see exit(2)) or exit(3C), or the value that the child process returned from main. WIFCONTINUED(stat) Evaluates to a non-zero value if status was returned for a child process that has continued. WIFEXITED(stat) Evaluates to a non-zero value if status was returned for a child process that terminated normally. WIFSIGNALED(stat) Evaluates to a non-zero value if status was returned for a child process that terminated due to the receipt of a signal. WIFSTOPPED(stat) Evaluates to a non-zero value if status was returned for a child process that is currently stopped. WSTOPSIG(stat) If the value of WIFSTOPPED(stat) is non-zero, this macro evaluates to the number of the signal that caused the child process to stop. WTERMSIG(stat) If the value of WIFSIGNALED(stat) is non-zero, this macro evaluates to the number of the signal that caused the termination of the child process. The <sys/wait.h> header defines the symbolic constants listed below for use with waitpid(3C). WNOHANG Do not hang if no status is available; return immediately. WUNTRACED Report status of stopped child process. The symbolic constants listed below are defined as possible values for the options argument to waitid(2). WEXITED Wait for processes that have exited. WSTOPPED Status is returned for any child that has stopped upon receipt of a signal. WCONTINUED Status is returned for any child that was stopped and has been continued. WNOHANG Return immediately if there are no children to wait for. WNOWAIT Keep the process whose status is returned in infop in a waitable state. The type idtype_t is defined as an enumeration type whose possible values include the following: P_ALL P_PID P_PGID The id_t and pid_t types are defined as described in <sys/types.h>. The siginfo_t type is defined as described in <signal.h>. The rusage structure is defined as described in <sys/resource.h>. Inclusion of the <sys/wait.h> header can also make visible all symbols from <signal.h> and <sys/resource.h>. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ SEE ALSO
exit(2), waitid(2), exit(3C), wait(3C), waitpid(3C),attributes(5), standards(5) SunOS 5.10 10 Sep 2004 wait.h(3HEAD)
All times are GMT -4. The time now is 12:41 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy