Chạy một lệnh trong một thời gian xác định và sau đó hủy bỏ nếu vượt quá thời gian


47

Tôi muốn biết làm thế nào tôi có thể chạy một lệnh trong một thời gian xác định, một phút và nếu nó không thực hiện xong thì tôi có thể dừng nó.

Câu trả lời:


62

Sử dụng timeout:

NAME
       timeout - run a command with a time limit

SYNOPSIS
       timeout [OPTION] DURATION COMMAND [ARG]...
       timeout [OPTION]

(Chỉ trong trường hợp, nếu bạn không có lệnh này hoặc nếu bạn cần tương thích với các shell rất cũ và có một số yêu cầu hoàn toàn cụ thể khác, thì hãy xem câu hỏi này ;-))


1
Hoàn hảo, cảm ơn vì đã liên kết đến câu hỏi đó. Tôi đã không có thời gian chờ trên hệ thống của mình nhưng tôi làm ngay bây giờ. Chỉ cần lưu ý một chút, là hết thời gian đi kèm với phần lớn các bản phân phối linux?
nikhil

1
Tuyệt đấy. bạn có thể làm một cái gì đó như thế này: for i in `seq 0 3`; do timeout 2 ethtool -p eth$i; done;để nháy đèn LED trên NIC
user1527227

1
Thật là một mệnh lệnh gợi cảm. Cảm ơn đã chỉ ra nó, đã không nhận thức được nó.
Bruno Bieri
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.