2010-06-19 36 views
6

Tôi có hai tập lệnh nói 'S1' và 'S2'. Tôi thực hiện các kịch bản như,tuần tự thực thi các quy trình nền unix

nohup S1 &

nohup S2 &

Nhưng tôi muốn họ thực hiện tuần tự. tức là., S2 chỉ nên thực hiện khi hoàn tất thành công S1. Làm thế nào tôi nên đi về việc này ?. Làm thế nào tôi có thể biết khi S1 kết thúc thực hiện ?. Bất kỳ ví dụ nào cũng sẽ được đánh giá cao. Cảm ơn.

Trả lời

9

Bạn có thể thực hiện chúng, tuần tự, như thế này:

(nohup S1 && nohup S2) & 

Hãy thử

(echo 1 && sleep 1 && echo 2) & 

Các double ampersand operator is described here.

Lưu ý rằng khi sử dụng &&, S2 chỉ chạy nếu S1 kết thúc "thành công" (mã trả về 0). Điều này có vẻ là những gì bạn muốn. Nếu bạn muốn S2 chạy bất kể S1 có thành công hay không, hãy sử dụng ; thay vì &&.

+0

Cảm ơn rất nhiều!. Tôi sẽ kiểm tra điều đó. – wowrt

+0

hi, stephen! Bạn vui lòng giúp tôi với câu hỏi này http://unix.stackexchange.com/questions/101411/how-to-run-new-background-command-sequentially-if-i-already-have-a-nohup-backgro/ 101421? Noredirect = 1 # comment154602_101421? Tôi sẽ rất cảm kích. – user15964

Các vấn đề liên quan