Câu trả lời:
Hãy thử timeoutlệnh. Ví dụ:
0 * * * * timeout -2 3540 /path/to/your_command.sh
sẽ gửi SIGINT tới lệnh của bạn nếu nó chưa hoàn thành sau 59 phút.
usage: timeout [-signal] time command...
timeout: /usr/bin/timeout
Không. Cách chúng ta làm là tạo một tập lệnh với tệp khóa và kiểm tra tập lệnh cho tập tin khóa đó trước khi bắt đầu chạy lại, vì vậy nó có thể kiểm tra xem nó đã chạy chưa và quyết định xem nó có chạy hay không, nếu nó chờ người khác chạy kết thúc hoặc nếu nó giết người khác trước khi chạy.
Tệp khóa chỉ là một tệp trống hoặc một tệp có tập lệnh khác được PIDlưu ở đâu đó như /var/runhoặc /var/lock.