sequentially executing background processes unix
I have two scripts say 'S1' and 'S2'. I execute these scripts as,
nohup S1 &
nohup S2 &
But I would like them to execute sequentially. ie., S2 should execute only on successful completion of S1. How should I go about doi开发者_开发知识库ng this?. How can I know when S1 finishes execution?. Any examples would be much appreciated. Thanks.
You can execute them, sequentially, like this:
(nohup S1 && nohup S2) &
Try
(echo 1 && sleep 1 && echo 2) &
The double ampersand operator is described here.
Note that when using &&
, S2
only runs if S1
finishes "successfully" (return code 0). This seems to be what you wanted. If you want S2
to run regardless of whether S1
succeeds, use ;
instead of &&
.
精彩评论