如何设置 Linux 命令的时间限制如何设置 Linux 命令的时间限制如何设置 Linux 命令的时间限制如何设置 Linux 命令的时间限制
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何设置 Linux 命令的时间限制

想要在 Linux 上运行命令而不占用太多资源吗?解决办法就是给它设定一个时间限制。

对于负责控制 Linux 服务器的系统管理员来说,资源管理是一项需要处理的重要任务。有时,Linux 命令会占用大量系统资源,需要停止。

幸运的是,您可以使用 timelimit 等实用程序来限制命令的运行时间。在本文中,我们将讨论为什么应该为命令添加时间限制以及如何使用 timelimit 和 timeout 等命令添加时间限制。

为什么要限制命令的运行时间?

有多种原因可能导致您必须在有时间限制的情况下运行命令。首先,您可能运行的是较旧的计算机或服务器,并且不希望系统在不需要的处理中浪费资源。

其次,有时限的任务(例如文件传输)会在一段时间后完成,但它们的进程不会立即停止。要限制程序占用额外的 CPU 时间和内存,您可以添加限制,以便在传输完成后停止该进程。

使用 timeout 命令添加限制

timeout 命令是许多 Linux 用户为命令添加时间限制的首选。由于此工具是 GNU Core Utilities 软件包的一部分,因此几乎每个 Linux 发行版上都预安装了它。

超时命令的基本语法是:

timeout limit command

...其中 limit 是命令应运行的时间量,command 是您要在时间限制下执行的 Linux 命令。

例如,如果您想使用 top 命令获取进程详细信息 10 秒:

timeout 10s top

top 命令是永无止境的,您必须使用 Ctrl + C 手动退出它。上述命令将运行top 10秒,一旦计时器到了,超时将停止其执行。请注意,超时采用秒作为默认时间单位,这意味着10和10s是相同的。

您还可以使用 m、h 和 d 表示分钟、小时、和天分别。

手动发送超时终止信号

默认情况下,超时命令发送 SIGTERM 作为终止信号。 SIGTERM 代表信号终止,它立即终止进程。

您还可以使用 -s 标志发送其他信号。例如,要发送 SIGKILL 信号:

timeout -s SIGKILL 10 top

也可以通过信号编号来指定信号。以下命令也将 SIGKILL 信号发送到 top 命令。

timeout -s 9 10 top

...其中 9 是 SIGKILL 的信号编号。

要获取所有可用信号的列表:

kill -l

有些命令即使添加时间限制后也不会完全停止。在这种情况下,使用默认超时命令添加终止信号可以解决该问题。

timeout -k 15 10 top

上述命令将首先运行top命令10秒,如果该命令没有停止,它将在15秒后向进程发送kill信号。

使用时间限制限制命令运行时间

与 timeout 命令不同,timelimit 不是 Linux 发行版上预安装的标准软件包之一。因此,您必须在系统上手动安装 timelimit。

要在基于 Debian 的发行版上安装:

sudo apt install timelimit

Arch 官方存储库中没有 Timelimit。但是,您可以使用 AUR 包管理器(例如 yay)来安装它。

sudo yay -S timelimit

要在 Fedora 上安装:

sudo dnf install timelimit

在 RHEL 和 CentOS 上:

sudo yum install timelimit

或者,如果您仍然无法在系统上安装该软件包,请从官方网站下载源代码并手动安装。

下载:时间限制

要使用 timelimit 运行 top 命令 10 秒:

timelimit -t10 top

Timelimit 采用多个参数,例如 warntime、warnsig、killtime 和 killsig。如果用户不提供这些参数,则采用默认值,即 warntime=3600 秒、warnsig=15、killtime=120 > 和 killsig=9。

管理 Linux 中命令的生命周期

如果您的 Linux 计算机资源有限,那么监视命令和控制进程就变得很重要。像超时和时间限制这样的实用程序是一个救星,因为它们允许您为命令添加时间限制。

与命令运行时一样,您也可以限制系统的屏幕时间。如果您是一位家长,不想让孩子在电脑前浪费不必要的时间,那么限制屏幕时间是最合适的选择。

©2015-2025 艾丽卡 support@alaica.com