Linux 中的超时命令

2023-10-23

timeout是一个命令行实用程序,它运行指定的命令,并在给定时间段后终止该命令(如果该命令仍在运行)。换句话说,timeout允许您运行有时间限制的命令。这timeout命令是 GNU 核心实用程序包的一部分,几乎所有 Linux 发行版上都安装了该包。

当您想要运行没有内置超时选项的命令时,它会很方便。

在这篇文章中,我们将解释如何使用Linuxtimeout命令。

如何使用timeout命令#

语法为timeout命令如下:

timeout [OPTIONS] DURATION COMMAND [ARG]

The DURATION可以是正整数或浮点数,后跟可选的单位后缀:

  • s- 秒(默认)
  • m- 分钟
  • h - hours
  • d - days

当不使用单位时,默认为秒。如果持续时间设置为零,则禁用关联的超时。

命令选项必须在参数之前提供。

以下是一些基本示例,演示如何使用timeout命令:

  • 五秒后终止命令:

    timeout 5 ping 8.8.8.8
  • 五分钟后终止命令:

    timeout 5m ping 8.8.8.8
  • 一分六秒后终止命令:

    timeout 1.1m ping 8.8.8.8

如果您想运行需要提升权限的命令,例如tcpdump, 前置sudo before timeout:

sudo timeout 300 tcpdump -n -w data.pcap

发送特定信号#

如果没有发出信号,timeout发送SIGTERM当达到时间限制时向托管命令发出信号。您可以使用以下命令指定要发送的信号-s (--signal) 选项。

例如,发送SIGKILL to the ping一分钟后命令,您将使用:

sudo timeout -s SIGKILL ping 8.8.8.8

您可以通过名称指定信号,例如SIGKILL,或者它的数字,例如9。以下命令与前一个命令相同:

sudo timeout -s 9 ping 8.8.8.8

要获取所有可用信号的列表,请使用kill -l命令:

kill -l

杀死卡住的进程#

SIGTERM,超出时间限制时发送的默认信号,可以被某些进程捕获或忽略。在这些情况下,进程在发送终止信号后继续运行。

要确保监控的命令被终止,请使用-k (--kill-after) 选项后跟一个时间段。当达到给定时间限制后使用此选项时,timeout命令发送SIGKILL向托管程序发送的信号不能被捕获或忽略。

在下面的示例中,timeout运行命令一分钟,如果不终止,十秒后会杀死它:

sudo timeout -k 10 1m ping 8.8.8.8

超时-k“./test.sh”

达到指定时间限制后被杀死

保留退出状态#

timeout回报124当达到时间限制时。否则,它返回退出状态的托管命令。

即使达到时间限制,要返回命令的退出状态,请使用--preserve-status option:

timeout --preserve-status 5 ping 8.8.8.8

在前台运行#

默认情况下,timeout在后台运行托管命令。如果您想在前台运行该命令,请使用--foreground option:

timeout --foreground 5m ./script.sh

当您想要运行需要用户输入的交互式命令时,此选项非常有用。

结论#

The timeout命令用于在有时间限制的情况下运行给定命令。

timeout是一个简单的命令,没有很多选项。通常您会调用timeout仅具有两个参数:持续时间和托管命令。

如果您有任何问题或反馈,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 中的超时命令 的相关文章

随机推荐

  • 使用 LRU 缓存提升您的 Python 代码

    LRU 缓存或 最近最少使用 缓存是一种缓存 当缓存达到其大小限制时 最近最少使用的条目将被丢弃 关键思想是通过重用以前的结果来加快对相同数据的后续请求 这种技术称为记忆化 在本教程中 我们将深入研究 LRU 缓存的概念 探索其底层机制 以
  • Python 数学函数(简单示例)

    在本教程中 您将了解 Python 数学函数mathPython 的模块 任何类型的项目都始终需要数学计算 在 Python 中 一些内置数学运算符不需要数学模块 例如加法 减法 乘法 除法 三角函数 正弦 余弦等 对数 指数或阶乘等高级运
  • Bash For 循环范围:简单指南

    在 Bash shell 中 for loop使您能够有效地迭代数字或字符序列 当涉及到定义序列时 范围就发挥了作用 本教程重点介绍 Bash 范围创建强大循环的能力 目录 hide 1 使用大括号 进行范围定义 2 基本数字序列 star
  • 网页设计趋势将持续存在

    第一个网站是纯文本网站 今天很难想象会有这样一个网站 第一个同时提供图片和文字的网站于 1993 年上线 blog hubspot com Lindsay Kolowich 2015 年 3 月 这些年来 网页设计取得了很大的发展和进步 为
  • 如何从 CentOS 7.7-7.0 升级 CentOS 7.8

    最新版本 CentOS 7 8 可供升级 所有 CentOS 7 7 7 6 7 5 7 4 7 3 7 2 7 1 和 7 0 用户都可以将系统升级到最新版本 所有使用 WHM cPanel 运行的用户都不需要执行任何操作 WHM cPa
  • 如何在 CentOS/RHEL 8/7/6 上安装 Angular CLI

    Angular是一个框架 库 资产和实用程序 它跟踪所有组件并定期检查其更新 本教程将帮助您在 CentOS 8 7 6 和 RHEL 8 7 6 Linux 操作系统上安装 Angular CLI 工具 第 1 步 安装 Node js
  • 在 Bash 中检查文件是否为空的 5 种方法

    在 Linux 中 空文件是大小为零字节的文件 这意味着该文件不包含任何数据 并且在文本编辑器中打开时没有任何内容 可以使用 touch 命令创建一个空文件 touch myfile txt 这将在当前目录中创建一个名为 myfile tx
  • 如何在 MySQL 中创建管理员用户

    在 MySQL 中管理数据库通常需要使用特权用户或超级管理员用户 他们拥有读取 写入 更新和管理数据库的所有权限 在 MySQL 中 这通常是 root 用户 但建议创建单独的超级管理员用户以实现更好的安全管理 本文将指导您如何在 MySQ
  • 如何在 Fedora 36/35/34 上安装 TeamViewer

    团队查看器是一款功能强大的远程桌面和文件共享应用程序 适用于大多数操作系统和移动设备 为了将 TeamViewer 的使用商业化 您必须购买许可证 您可以免费使用它 仅供个人使用 Teamviewer 的 RPM 包由官方团队构建 可以安装
  • 如何更改 PHP 会话超时

    作为 Web 开发人员 了解 PHP 会话超时对于构建安全可靠的 Web 应用程序至关重要 PHP 会话是一种跨多个页面存储用户信息的方式 会话超时是指会话在过期之前保持活动状态的持续时间 在本分步指南中 我们将引导您完成更改 PHP 会话
  • 如何在 Ubuntu、Debian 和 LinuxMint 上安装 Python 3.7

    在撰写本文时 Python 3 7 系列的最新稳定版本已可供安装 本文将帮助您在 Ubuntu 和 LinuxMint 操作系统上安装 Python 3 7 9 你可以拜访here阅读有关 Python 版本的更多信息 先决条件 保持软件包
  • 如何在 Ubuntu 16.04、14.04 上安装 Nginx、PHP 7 和 MySQL

    PHP 7 2 的最新主要版本已经发布 在速度和安全性方面进行了大量优化 所以你应该尝试这个版本来进行开发 本教程将帮助您在 Ubuntu 17 10 16 04 和 14 04 LTS 版本上安装 Nginx PHP 7 2 和 MySQ
  • 了解 Terraform 语法和配置文件

    Terraform 由 HashiCorp 开发 是一款因其在基础设施即代码 IaC 方面的强大功能而广为人知的工具 本综合指南旨在让您深入了解 Terraform 语法 特别关注配置文件 了解 Terraform 语法 Terraform
  • Fedora 26 发布,新功能及升级步骤

    Fedora 26 发布 最终的 Fedora 26 已发布于2017 年 7 月 11 日 Fedora 26有各种软件升级 安全补丁 该版本将与 GENOME 3 24 一起发布 您可以从以下位置下载 Fedora 26 预发行版 Be
  • 如何重命名 SQL Server 数据库

    Microsoft SQL Server 为您提供了多种重命名数据库的方法 您可以使用 SQL Server Management Studio 或运行 SQL 查询来重命名数据库 在重命名数据库之前 请记住 它可能会中断使用当前数据库名称
  • 如何使用SCP命令安全传输文件

    SCP 安全复制 是一个命令行实用程序 允许您在两个位置之间安全地复制文件和目录 With scp 您可以复制文件或目录 从本地系统到远程系统 从远程系统到本地系统 在本地系统的两个远程系统之间 当传输数据时scp 文件和密码都经过加密 因
  • 如何在 CentOS 7 上安装 VMware Workstation Player

    VMware是一个成熟稳定的虚拟化解决方案 允许您在一台机器上运行多个独立的操作系统 您可以创建自己的虚拟机并评估许多软件供应商作为虚拟设备分发的软件 这些软件可从VMware 解决方案交流 本教程将指导您完成在 CentOS 7 上安装
  • 如何在 Ubuntu 18.04 上安装 Java

    Java 是世界上最流行的编程语言之一 用于构建不同类型的跨平台应用程序 本教程介绍如何在 Ubuntu 18 04 上安装各种版本的 OpenJDK 以及 Oracle Java 相同的说明适用于 Ubuntu 16 04 和任何基于 U
  • 如何在 Ubuntu 18.04 上安装 Apache Cassandra

    Apache Cassandra 是一个免费的开源 NoSQL 数据库 不存在单点故障 它提供线性可扩展性和高可用性 而不会影响性能 Apache Cassandra 被许多组织使用 包括 Apple NetFlix eBay 和 Easo
  • Linux 中的超时命令

    timeout是一个命令行实用程序 它运行指定的命令 并在给定时间段后终止该命令 如果该命令仍在运行 换句话说 timeout允许您运行有时间限制的命令 这timeout命令是 GNU 核心实用程序包的一部分 几乎所有 Linux 发行版上