Hướng dẫn cách sử dụng lệnh Timeout và Timelimit trong Linux

Hướng dẫn chi tiết cách sử dụng  lệnh Timeout và Timelimit trong Linux để giới hạn thời gian chạy của một lệnh nào đó.

1. Giới hạn thời gian chạy bằng lệnh Timeout

Linux có một tiện ích command-line được gọi là timeout, nó cho phép bạn thực hiện một lệnh trong một khoảng thời gian cụ thể.

Cú pháp của nó như sau.

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

Như vậy, để sử dụng lệnh này thì ta chỉ cần truyến giá trị thời gian là số giây vào phía sau là được.

Như ở ví dụ dưới đây mình chạy lệnh ping đến Googe và thiết lập thời gian tối đa là 5s, quá 5s thì lệnh kết thúc.

# timeout 5s ping google.com

Ký tự s trong thời gian 5s có thể có hoặc không. Như lệnh dưới đây là như nhau.

# timeout 5 ping google.com

Hướng dẫn cách sử dụng lệnh Timeout và Timelimit trong Linux (1)

Nếu bạn muốn sử dụng theo giờ hoặc phút thì có thể đổi sang các hậu tố:

  • m là số phút
  • h là số giờ
  • d là số ngày

Một số lệnh vẫn tiếp tục chạy sau khi timeout gửi tín hiệu dứng vì quá giờ. Trường hợp này ta phải sử dụng thêm tùy chọn --kill-after.

-k, --kill-after=DURATION

Bạn cần chỉ định khoảng thời gian để cho timeout biết sau bao lâu thì tín hiệu kết thúc sẽ được gửi.

Ví dụ: Lệnh hiển thị sẽ kết thúc sau 8 giây.

# timeout 8s tail -f /var/log/syslog

Hướng dẫn cách sử dụng lệnh Timeout và Timelimit trong Linux (2)

2. Giới hạn thời gian chạy bằng Timelimit

Timelimit sẽ chạy một lệnh, sau đó kết thúc quá trình sau một thời gian bằng cách sử dụng một tín hiệu. Ban đầu, nó chuyển một tín hiệu cảnh báo, và sau thời gian chờ nó sẽ gửi tín hiệu hủy.

Không giống như timeout, Timelimit có nhiều tùy chọn hơn như killsig, warnsig, killtime và warntime.

Timelimit có thể được tìm thấy trong repo của Debian, và để cài đặt nó thì hãy sử dụng lệnh sau.

$ sudo apt install timelimit

Đối với các hệ thống dựa trên Arch, bạn có thể cài đặt nó bằng các chương trình trợ giúp AUR, ví dụ: Pacaur Pacman và Packer.

# Pacman -S timelimit
# pacaur -S timelimit
# packer -S timelimit

Trên các phiên bản khác của Linux, bạn có thể download timelimit source và cài đặt nó.

Sau khi cài đặt xong là bạn có thể sử dụng được rồi đấy. Ví dụ sau mình đã sử dụng 10s.

$ timelimit -t10 tail -f /var/log/pacman.log

Lưu ý: Nếu bạn không chỉ định thời gian thì Timelimit sẽ sử dụng các giá trị mặc định gồm:

  • warntime=3600s
  • warnsig=15s
  • killtime=120s
  • killsig=9

Lệnh Timeout rất dễ sử dụng, tuy nhiên tiện ích Timelimit hơi phức tạp nhưng có nhiều lựa chọn hơn. Bạn có thể lựa chọn phương án phù hợp nhất tùy theo nhu cầu của mình.

Chúc bạn sử dụng lệnh Timeout và Timelimit trong Linux thành công!

Nguồn: freetuts