Lệnh GNU coreutils timeout
cực kỳ tiện lợi cho một số tình huống kịch bản nhất định, cho phép sử dụng đầu ra của lệnh nếu chạy nhanh và bỏ qua nếu mất quá nhiều thời gian.
Làm cách nào tôi có thể tính gần đúng hành vi cơ bản của timeout
việc chỉ sử dụng các tiện ích được chỉ định POSIX?
(Tôi nghĩ nó có thể liên quan đến một sự kết hợp của wait
, sleep
, kill
và ai biết được điều gì khác, nhưng có lẽ tôi là thiếu một cách tiếp cận dễ dàng hơn.)
command & pid=$! ; sleep 5 && kill $pid
command
kết thúc nhanh chóng, có khả năng nhỏ pid
sẽ bị tái sử dụng bởi một quy trình khác bắt đầu trước khi kill
lệnh chạy? Tôi sẽ không muốn điều đó trong mã sản xuất ....
timeout
chương trình và sử dụng nó?