Thứ Sáu, 28 tháng 7, 2023

Lệnh Timeout trong Linux: Thiết lập thời gian chạy cho lệnh

Trong bài này mình sẽ hướng dẫn cách sử dụng lệnh Timeout để thiết lập thời gian chạy tối đa cho một lệnh Linux nào đó.

Trong Linux có rất nhiều lệnh khác nhau, và mỗi lệnh sẽ có một chức năng khác nhau, mục tiêu cuối cùng là giúp người dùng thao tác nhanh và hiệu quả hơn.

Trong số các lệnh thì có một lệnh rất hay được dùng để thiết lập thời gian chạy cho các lệnh khác, đó là lệnh Timeout. Và trong bài này mình sẽ hướng dẫn cách sử dụng nó ở mức cơ bản nhất.

Mục lục

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

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ể.

Bài viết này được đăng tại [tranvanbinh.vn]

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

1
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.

1
# 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.

1
# timeout 5 ping google.com

Timeout Ping Command in Linux png

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

  • m là số phú
  • 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.

1
-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.

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

Set Time Limit to Commands png

II. 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ư killsigwarnsigkilltime 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.

1
$ 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.

1
2
3
# 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.

1
$ 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.

Qua bài này bạn đã biết cách sử dụng hai công cụ là timeout và timelimit để giới hạn thời gian chạy của một lệnh Linux nào đó. Chúc bạn thành công!

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master