Tôi muốn viết một kịch bản lệnh shell để sinh ra một số quy trình chạy dài trong nền, sau đó treo xung quanh. Khi nhận được SIGTERM, tôi muốn tất cả các quy trình con cũng kết thúc.kịch bản shell để sinh ra quy trình, chấm dứt trẻ em trên SIGTERM
Về cơ bản, tôi muốn có "quy trình tổng thể".
Dưới đây là những gì tôi có cho đến nay:
#!/bin/sh
sleep 600 &
PID1="$!"
sleep 600 &
PID2="$!"
# supposedly this should kill the child processes on SIGTERM.
trap "kill $PID1 $PID2" SIGTERM
wait
Các kịch bản trên không thành công với trap: 10: SIGTERM: bad trap
.
Chỉnh sửa: Tôi đang sử dụng Ubuntu 9.04
Nếu bạn nghĩ rằng bạn phải sử dụng các số tín hiệu, bạn chỉ nên sử dụng các số tiêu chuẩn. Nhưng tôi siggest để sử dụng tên tín hiệu của hệ thống của bạn để thay thế. – TheBonsai
Bạn nói đúng. Tôi hy vọng đây là phiên bản cuối cùng ... – itsadok
Vâng, đó là mã của bạn, bạn có thể có nhiều phiên bản như mong muốn ;-) – TheBonsai