yeah Shell is supposed to wait before until it's finished before executing BUT you still may run into a problem with either method; let me explain. I've seen programs that have run like the ones you describe (one needing to be started before the other) and simply checking for the existence of a process may not do. You may need to add a time offset in there if the first program doesn't totally load until after $x amount of time, do you know what I mean? just something to think about in case whatever method you choose doesn't appear to work initially...