Một script/command có thể chạy nhanh hoặc chậm tùy tình huống. Thí dụ lệnh find trên một thư mục webdav/davfs có thể chạy hàng giờ nếu mạng chậm và làm cho không thể ssh RPi, mặc dù có thể ping.
Chúng ta có thể buộc script/command này kết thúc sau một thời gian n giây định trước, tuy nhiên không khéo lại làm cho script/command luôn luôn chạy trong n giây mặc dù nó có thể kết thúc sớm hơn.
Một giải pháp là dùng lệnh timeout, cú pháp là
timeout [OPTION] NUMBER[SUFFIX] COMMAND [ARG]... timeout [OPTION]
Thí dụ:
find /mnt/box.com/* -mindepth 2 -maxdepth 2 -type d -ctime +$nday -exec rm -rf '{}' \;
Lệnh trên tìm trong thư mục webdav /mnt/box.com các thư mục con cấp 2 được tạo ra trước thời điểm chạy lệnh $nday ngày, và xóa nó đi. Lệnh này có khi chạy rất chậm và làm nghẻn mạng. Chúng ta đành phải kết thúc nó nếu chạy chậm hơn 5 phút, bằng cách thêm vào timeout 5m trước câu lệnh find:
timeout 5m find /mnt/box.com/* -mindepth 2 -maxdepth 2 -type d -ctime +$nday -exec rm -rf '{}' \;
Tuy nhiên, câu lệnh vẫn có thể không tự kết thúc được, khi đó cần phải dùng lệnh kill sau khi chờ đợi nó trong 7 phút
timeout -k 7m 5m find /mnt/box.com/* -mindepth 2 -maxdepth 2 -type d -ctime +$nday -exec rm -rf '{}' \;
Chi tiết về lệnh timeout có thể xem qua lệnh timeout –help