The goal of Linux is to help you be as fast and efficient as possible. One property of a Linux command is the time limit.
You can set a time limit for any command you want. If the time expires, the command stops executing.
The timeout
command is used to run a command with a specified time limit. It’s available in various Linux distributions
The timeout
command is a straightforward way to limit the execution time of a command or process. It’s part of the GNU Core Utilities
In this short tutorial, you are going to learn two methods on how you can use a time limit in your commands.
Table of Contents
Run Commands Using the timeout (time limit) Tool
Linux has a command-line utility called a timeout, which enables you to execute a command with a time limit. Its syntax is as follows. timeout [OPTION] DURATION COMMAND [ARG]… To use the command, you specify a timeout value (in seconds) with the command you want to run. For instance, to timeout a ping command after 5 seconds, you can run the following command. # timeout 5s ping google.com You do not have to specify the (s) after number 5. The command below is the same and will still work.
# timeout 5 ping google.com

Other suffixes include:
m
representing minutesh
representing hoursd
representing days
Sometimes commands may continue to run even after timeout sends the initial signal. In such instances, you can use the --kill-after
option. Here’s the syntax.
-k, --kill-after=DURATION
You need to specify a duration to let timeout know after how much time the kill signal is to be sent. For example, the command shown is going to be terminated after 8 seconds.
# timeout 8s tail -f /var/log/syslog
Run Linux Commands Using Time limit Program
The Timelimit program runs a given command then terminates the process after a specified time using a given signal. It initially passes a warning signal, and then after a timeout, it sends the kill signal. Unlike the timeout option, Timelimit has more options such as killsig, warnsig, killtime, and warntime. Timelimit can be found in the repositories of Debian-based systems and to install it, use the following command.
$ sudo apt install timelimit
For Arch-based systems, you can install it using AUR helper programs e.g., PacaurPacman, and Packer. # Pacman -S timelimit # pacaur -S timelimit # packer -S timelimit After installation, run the following command and specify the time. In this example, you can use 10 seconds. $ timelimit -t10 tail -f /var/log/pacman.log Note that if you don’t specify arguments, Timelimit uses the default values: warntime=3600 seconds, warnsig=15, killtime=120, and killsig=9.
This limits the CPU time to 30 seconds for subsequent commands run within that shell.
Using Signals
Timeouts can also be achieved by sending signals to processes. The SIGTERM
or SIGKILL
signals can be used to terminate a process after a specified period. However, this method requires scripting or programming to manage the timing and signal sending.
Writing Scripts
Shell scripts or programming languages like Python, Perl, or others can be used to create custom timeouts. By using language-specific functions or libraries, you can implement timeout functionality for specific tasks or processes.
Other Tools
There are other tools and utilities available that provide timeout functionalities, such as timelimit
, gtimeout
(GNU Coreutils), or specific language-based modules like Python’s signal
module, which can help manage timeouts for scripts or processes.
Select the method that best fits your use case or programming/scripting environment to implement timeouts effectively in Linux.
Conclusion
The Timeout command is easy to use, but the Timelimit utility is a bit complicated but has more options. You can choose the most suitable option depending on your needs. We hope you’ve found this useful!