Sponsored Content
Top Forums UNIX for Advanced & Expert Users How can I wait for PID to finish in another shell Post 60470 by 98_1LE on Monday 17th of January 2005 09:17:28 PM
Old 01-17-2005
This is a script I wrote a long time ago and have been using since (not sure how widespread pgrep is, but this works in Solaris).

Code:
#!/bin/bash

# Variables
PROCESS=""      # This is what you want to page on
MAILTO=""         # Space delmited list of email addresses
HOSTNAME=`hostname`
A=1

 # Processing
until [ ${A} -eq 2 ]; do
   pgrep -f "${PROCESS}" >/dev/null 2>&1
   if [ $? -eq 0 ]; then
        sleep 300
        else sleep 30
        pgrep -f "${PROCESS}" >/dev/null 2>&1
        FLAG=$?
        if [ ${FLAG} ! -eq 0 ]
           then echo "$PROCESS is no longer running on ${HOSTNAME}" | mailx -s "
${PROCESS}" ${MAILTO}
           A=2
           exit 0
        fi
   fi
done

It checks that a process is running every 5 minutes. If it goes away, it waits 30 seconds and checks one last time to make sure.

I know this isn't exactly what you are looking for, but you should be able to modify it to work (sorry, I have been at work too long today to do it).
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

wait in shell scripts

Hi I am creating 3 background processes in my shell script using &. I have obtained the 3 PIDs of the background processes using $!. I need to wait for these to complete and i need the exit status of each of these. If i use : wait $PID1 wait $PID2 wait $PID3 and get the exit status of... (1 Reply)
Discussion started by: Vinaya
1 Replies

2. Shell Programming and Scripting

How to wait for the subprocess to finish in tcl

Hi All Here i have a piece of code, set filename "./GopiRun.sh" #I need to wait here until the GopiRun.sh is completed how do i achive this exit. (1 Reply)
Discussion started by: nathgopi214
1 Replies

3. Shell Programming and Scripting

wait command - cat it wait for not-chile process?

Did not use 'wait' yet. How I understand by now the wait works only for child processes, started background. Is there any other way to watch completion of any, not related process (at least, a process, owned by the same user?) I need to start a background process, witch will be waiting... (2 Replies)
Discussion started by: alex_5161
2 Replies

4. UNIX for Dummies Questions & Answers

Wait Process in Shell Scripting.

Hello, I have a script that needs to wait till the previous process is done within the same script.But my script doesnt wait till that it is done.Can anyone suggest how I can stop my process till the previous task is done. I tried 'wait' but I dont have a static process id so is there... (2 Replies)
Discussion started by: sud
2 Replies

5. Shell Programming and Scripting

shell script for getting pid of spawn processes from shell

Hi, I am new this forum. I request you peoples help in understanding and finding some solution to my problem. Here it goes: I need to perform this set of actions by writing a shell script. I need to read a config file for the bunch of processes to execute. I need to fecth the pid of... (4 Replies)
Discussion started by: sachin4sachi
4 Replies

6. Shell Programming and Scripting

How to make parent shell finish last?

Hi all, I have a shell that kicks off several sub-shells and make them run parallelly, like: shell1.sh & shell2.sh & shell2.sh & ... However, since all sub-shells run parallely, the parent shell finished right after it's submitted, like: $ parent.sh & $ + Done parant.sh & $ ... (2 Replies)
Discussion started by: visio2000
2 Replies

7. Shell Programming and Scripting

How to WAIT for jobs in each group to finish?

I have the shell script to call a Perl routine and pass the Informatica WorkFlow name to it. Jobs in each group executes in background do not seem to wait at all. How do I make it to WAIT for the prior group to complete before execute the next group of jobs? Sample of the jobs flow: { ... (6 Replies)
Discussion started by: lv99
6 Replies

8. Shell Programming and Scripting

How to wait for tar to finish before sending the archive through ftp?

Hey all, I want to automate tarring a directory then using ftp to transfer the files over. I was able to put the commands together but what I'm noticing is that only the very first file is being tarred and then transferred. tar cvpf new.backup sourceAbove is the command I'm using which works... (4 Replies)
Discussion started by: Keepcase
4 Replies

9. Shell Programming and Scripting

calling a shell script in background and wait using "wait" in while loop

Hi, I am facing a strange issue, when i call a script from my while loop in background it doesnt go in background, despite the wait i put below the whil loop it goes forward even before the process put in background is completed. cat abc.txt | while read -u4 line do #if line contains #... (2 Replies)
Discussion started by: mihirvora16
2 Replies

10. UNIX for Dummies Questions & Answers

How to wait for a grand child to finish?

Hello all, I have a very basic question. I have a requirement where in, I have a main process which forks a child process, which execs and runs a c executable corresponding to a daemon. In the c executable corresponding to a daemon, as everyone does, I fork another child process, and as part of... (7 Replies)
Discussion started by: sai2krishna
7 Replies
stopped(7)						 Miscellaneous Information Manual						stopped(7)

NAME
stopped - event signalling that a job has stopped SYNOPSIS
stopped JOB=JOB INSTANCE=INSTANCE RESULT=RESULT [PROCESS=PROCESS] [EXIT_STATUS=STATUS] [EXIT_SIGNAL=SIGNAL] [ENV]... DESCRIPTION
The stopped event is generated by the Upstart init(8) daemon when an instance of a job has stopped. The JOB environment variable contains the job name, and the INSTANCE environment variable contains the instance name which will be empty for single-instance jobs. If the job was stopped normally, the RESULT environment variable will be ok, otherwise if the job was stopped because it has failed it will be failed. When the job has failed, the process that failed will be given in the PROCESS environment variable. This may be pre-start, post-start, main, pre-stop or post-stop; it may also be the special value respawn to indicate that the job was stopped because it hit the respawn limit. Finally in the case of a failed job, one of either EXIT_STATUS or EXIT_SIGNAL may be given to indicate the cause of the stop. Either EXIT_STATUS will contain the exit status code of the process, or EXIT_SIGNAL will contain the name of the signal that the process received. The normal exit job configuration stanza can be used to prevent particular exit status values or signals resulting in a failed job, see init(5) for more information. If neither EXIT_STATUS or EXIT_SIGNAL is given for a failed process, it is because the process failed to spawn (for example, file not found). See the system logs for the error. init(8) emits this event as an informational signal, services and tasks started or stopped by this event will do so in parallel with other activity. It is typically combined with the starting(7) event by services when inserting themselves as a dependency. Job configuration files may use the export stanza to export environment variables from their own environment into the stopped event. See init(5) for more details. EXAMPLE
A service that wishes to be running whenever another service would be running, started before and stopped after it, might use: start on starting apache stop on stopped apache A task that must be run after another task or service has been stopped might use: start on stopped postgresql SEE ALSO
starting(7) started(7) stopping(7) init(5) Upstart 2009-07-09 stopped(7)
All times are GMT -4. The time now is 09:18 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy