Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am running a command that's processing some data in one shell window (let's say it has pid 200). Unfortunately I forgot to add the & to run it in the background.

I need to run some analysis script after pid 200 is finished. I thought I could just open up another shell window and do

wait 200; ./myanalysis.sh

But it complains to me

"-bash: wait: pid 200 is not a child of this shell"

With that in mind, is there a way I can execute my analysis script automatically after this process terminates?

share|improve this question
add comment

2 Answers

Can you use ^z and then do the following?

wait 200; ./myanalysis.sh&
fg %1

This will wait till pid 200 is finished, then run your analysis, and then will put itself in foreground.

share|improve this answer
add comment

You can't "wait" for non-child processes, and you have to manually check it periodically. See for example this stack overflow answer.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.