Đặt thời gian chờ cho công việc định kỳ


11

Ubuntu cron (Vixie cron?) Có hỗ trợ thiết lập thời gian chờ cho công việc của nó không?

Cụ thể, quá trình sẽ bị giết sau X giây trừ khi nó kết thúc thành công sau đó.

Tôi đã có một số trường hợp các tác vụ bị treo do kết nối mạng và các vấn đề khác nhau. Quá trình này sẽ bị treo mãi mãi trừ khi bạn tự dọn dẹp và tiêu diệt chúng.

Câu trả lời:


26

Trên Ubuntu, thời gian chờ lệnh tồn tại, là một phần của coreutils. Bạn có thể sử dụng nó như thế này để đặt thời gian chờ. Các phiên bản cũ hơn của Debian / Ubuntu không được xây dựng và bao gồm lệnh này, nhưng có một timeoutgói tương đương mà bạn có thể cài đặt.

# puppet shouldn't take more then 40 minutes!
47 * * * * root /usr/bin/timeout 2400 /usr/bin/puppet agent ...

3
Thời lượng cũng có thể có hậu tố ("s" trong vài giây, "m" trong vài phút, "h" trong nhiều giờ và "d" trong nhiều ngày). Vì vậy, để dễ đọc hơn, phần trên cũng có thể được viết là 47 * * * * root / usr / bin / timeout 40m / usr / bin / Puppet agent ...
smoove666

Không, nó không thể. ít nhất là không với việc thực hiện tôi đã có khi viết câu hỏi này. Phiên bản mới trong coreutils có hậu tố s. Phiên bản tôi có trên các hệ thống Debian cũ hơn thì không.
Zoredache

-2

Tôi không nghĩ rằng điều này là có thể. Bạn sẽ phải xây dựng kiểm tra vào ứng dụng của bạn.

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.