Chờ đợi không chờ tất cả các tiến trình con dừng lại. Đây là kịch bản của tôi:Làm cho lệnh "Chờ" của linux đợi cho TẤT CẢ các tiến trình con
#!/bin/bash
titlename=`echo "[email protected]"|sed 's/\..\{3\}$//'`
screen -X title "$titlename"
/usr/lib/process.bash -verbose [email protected]
wait
bash -c "mail.bash [email protected]"
screen -X title "$titlename.Done"
Tôi không có quyền truy cập vào /usr/lib/process.bash, nhưng nó là một kịch bản thay đổi thường xuyên, vì vậy tôi muốn tham khảo nó ... nhưng trong kịch bản:
#!/bin/ksh
#lots of random stuff
/usr/lib/runall $path $auto $params > /dev/null 2>&1&
vấn đề của tôi là runall tạo ra một tập tin đăng nhập ... và mail.bash là giả sử để gửi thư cho tôi rằng tập tin đăng nhập, nhưng sự chờ đợi là không chờ đợi runall để kết thúc, có vẻ như chỉ chờ đợi process.bash để hoàn tất. Dù sao, không truy cập vào quy trình .bash hoặc cố gắng giữ phiên bản cập nhật của riêng mình.bash, để chờ đợi chờ đợi runall hoàn tất? (Các tập tin log ghi đè chạy trước, vì vậy tôi không thể chỉ kiểm tra sự hiện diện của các tập tin đăng nhập, vì luôn luôn có ai ở đó)
Cảm ơn, Dan
Bạn có thể cung cấp cho chúng với các bộ phận có liên quan của 'ps ef 'sau khi 'chờ đợi' đã kết thúc? Điều đó sẽ cho thấy các quy trình nào đang chạy và quá trình nào là một đứa trẻ trong đó quá trình khác ... – Heinzi
Kịch bản của tôi và Process.bash kết thúc gần như ngay lập tức. Quá trình còn lại duy nhất là runall, chạy dưới PID ngẫu nhiên. – Dan