How do I know all processes are finished?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How do I know all processes are finished?
# 1  
Old 04-24-2008
How do I know all processes are finished?

Hi all,

I am writing a C shell script that starts a program. The program forks of several child processes. Only when all child processes are done, I want to archive my log files. Below is what I have so far, but unfortunately it doesn't work.

MyProgram

if (-e processes.txt) then
rm processes.txt
endif
ps -C MyProgram | grep MyProgram > processes.txt

while (-s processes.txt)
rm processes.txt
ps -C MyProgram | grep MyProgram > processes.txt

rm processes.txt

# start archiving log files

The while loop is done twice and than the archiving starts, while one of the child processes is still running. Does anyone know what I am doing wrong or does anyone have any other suggestion on how to do this?
Thanks a lot.
# 2  
Old 04-24-2008
Your best bet is to have each fork generate and then remove a lockfile of their own upon start and exit. The parent process or some other process can then monitor these for status and run the archive process when all of the lockfiles are gone. Something like while [ -e $lockfdir/$lockfile ] or sleep then check an ls command's $? for 0 would probably work ...
# 3  
Old 04-28-2008
I just found it that my solution works when I use goto's instead of while.
Does anyone know why that is?
Thanks.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to make sure that sub shells have finished before moving on?

Hello, I have a script that is running multiple instances of an application in parallel. # learn on f0 emergent -nogui -p $ScriptLoc/$PROJ fold_tag=f0 & sleep 5 # learn on f1 emergent -nogui -p $ScriptLoc/$PROJ fold_tag=f1 & sleep 5 # learn on f2 emergent -nogui -p... (4 Replies)
Discussion started by: LMHmedchem
4 Replies

2. Shell Programming and Scripting

Wait until firefox has finished

I am running a macro script from the command line. But the script doesn't wait until the task has finished. firefox imacros://run/?m=macro_script.iim firefox imacros://run/?m=macro_script2.iim How do I get it to wait until the macro has been completed? I am using imacros, a firefox... (1 Reply)
Discussion started by: locoroco
1 Replies

3. Shell Programming and Scripting

how to proceed when curl is finished

I have a script which uses cli curl to download the source code of a webpage and then tests if a specific string exists in the source. The problem is that the website has a slow response, so the eval expression hasn't completed when the test starts. The test returns a negative, and the curl... (8 Replies)
Discussion started by: locoroco
8 Replies

4. Shell Programming and Scripting

Create log for finished processes

Hi, I'm doing a script that generate some background process like for file in `find $dir -type f -maxdepth 1 -mtime -1`; do exp="java -cp process.jar testing $file &" eval $exp echo $! #Get the PID echo $(basename $file) >> log done Is there a way to know when those... (1 Reply)
Discussion started by: amondracorp
1 Replies

5. Shell Programming and Scripting

check if file finished to copy

Hi all, I have a script that is monitoring a hot folder. This script works fine with one exception when the script is executed while a file is being copied to the hot folder. What is the easiest method to check if the copy file is completed? I'd like to get the solution in bash :) (8 Replies)
Discussion started by: gigagigosu
8 Replies

6. Shell Programming and Scripting

How to know a executable has finished his task

Hi frnds, I want to know is there a way by which we can know that a C++ executable has finished its job in shell script. My task is as follows: 1.Shell script calls a executable 2.Executable executes and performs its job of generating some reports. Now i want my shell script to... (4 Replies)
Discussion started by: electroon
4 Replies

7. Shell Programming and Scripting

** Finished ** Syncid.rc

So, the script I've been working on, since I was starting to learn Shell scripting is now complete. This was coded in ksh, and I am very proud of it. What this script does, is syncs up uid's across the network. So if you have 10 servers, with 10 usernames with different UID's - this will... (1 Reply)
Discussion started by: syndex
1 Replies

8. UNIX for Dummies Questions & Answers

background job finished notification

In my last job someone gave me the command to put in my .profile that let me know when a job I had running in the background finished. It was a word about 5 char long. I can't remember it! (4 Replies)
Discussion started by: nkeller
4 Replies

9. UNIX for Dummies Questions & Answers

Has my script finished?

Hi I'm writing a script which will be run by cron every X minutes. I don't want cron to run my script again if the previous one has not yet finished. When the script first runs, I had the idea to store the Process ID in a file. When cron tries to run the script again, I would check the... (5 Replies)
Discussion started by: Bab00shka
5 Replies

10. UNIX for Advanced & Expert Users

Finding Out When A Process Has Finished?

Problem I have an application which basically runs lots of UNIX programs remotely, using the Telnet protocol. For each program it remotely executes, it stores the process ID (PID) for that process. At regular intervals, I would like my application to take the PID for every process still... (5 Replies)
Discussion started by: 1cuervo
5 Replies
Login or Register to Ask a Question