Maybe I am being dense here ... BUT ... Doesn't the "echo $$" only happen AFTER the else process is finished ??? if you make the "else" process be the rsync script, then it will not create $pidfile until after the rsync is done ... which does not help you. if you leave the else process as is and kick off the rsync after the echo $$ then it is not the same PID that you wrote to the $pidfile and you will start more than one rsync process ... as the PID that you wrote to $pidfile as the echo process ... that already finished ... or I am mistaken? The idea of it is to place that bit of code at or near the beginning of your script, then have the rsync process start after the "echo $$". That will put the PID of your script into that file, the rsync process will be started in the script, and the script would not end until the rsync one does..so you are fairly safe that two instances of your script will run at thte same time.. Mike