是否可以从 bash 脚本设置超时? [复制]

2023-12-09

有时我的 bash 脚本会在没有明确原因的情况下挂起并保持

所以它们实际上可以永远挂起(脚本进程将运行直到我杀死它)

是否可以结合 bash 脚本超时机制,以便在 ½ 小时后退出程序?


这种仅限 Bash 的方法通过将函数作为后台作业运行来强制超时,从而将所有超时代码封装在脚本中:

#!/bin/bash

Timeout=1800 # 30 minutes

function timeout_monitor() {
   sleep "$Timeout"
   kill "$1"
}

# start the timeout monitor in 
# background and pass the PID:
timeout_monitor "$$" &
Timeout_monitor_pid=$!

# <your script here>

# kill timeout monitor when terminating:
kill "$Timeout_monitor_pid"

请注意,该函数将在单独的进程中执行。因此被监控进程的PID($$)必须通过。为了简洁起见,我省略了通常的参数检查。

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

是否可以从 bash 脚本设置超时? [复制] 的相关文章

  • 使用 sed 查找并替换包含非转义字符的变量

    我可以使用它来查找 fly 的所有实例 并将其替换为文件中的 insect sed i s fly insect g animals txt 如何找到 BASH 变量并将其替换为另一个 BASH 变量 例如 name echo fly ca
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • 如何从 C++ 程序中重新启动 Linux?

    我有一个 Qt 4 GUI 我需要在下拉菜单中提供一个选项 允许用户选择重新启动计算机 我意识到这对于以其他方式重新启动计算机的能力来说似乎是多余的 但选择需要保留在那里 我尝试使用 system 来调用以下内容 suid root she
  • 当我尝试在 .bashrc 中添加命令时出现命令未找到消息

    我问了一个问题如何在 bash shell 中编写漂亮优雅的 linux 命令 https stackoverflow com q 19720095 80353 当我尝试该建议时 我收到以下错误消息 Sorry command not fo
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • 通过 bash 命令设置 gitlab-ci.yml 变量

    variables CUSTOM NODE VERSION cat nvmrc 我想要变量CUSTOM NODE VERSION通过内容填充 nvmrc文件 位于项目根目录中 如何在gitlab ci yml file 上面的例子不起作用
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • 比较两个文件的单列

    我有两个文件 每个文件都有两列 并用空格分隔 我想找到两个文件中第 2 列不相同的行 并将它们输出到第三个文件 file A 1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 BBBBBBBBBBBBBBBBBBBBBB
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • Bash:递归复制命名文件,保留文件夹结构

    我希望 cp R src prog js images icon jpg tmp package 将在目标目录中产生对称结构 tmp package src prog js images icon jpg 但相反 这两个文件都被复制到 tm
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • shell中如何分割字符串

    我有一个变量作为 string ABC400p2q4 我怎样才能分开ABC400 and p2q4 我需要将它分成两个变量 结果我得到 echo var1 ABC400 echo var2 p2q4 可以用任何字母字符代替 ABC 可以用任
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 byobu 选项卡中启动命令的脚本

    我已经使用 screen 来启动服务器进程 以便稍后我可以在需要时附加并再次分离以继续执行其他操作 它工作得很好 但我最近发现了 byobu 我真的很喜欢它 我想使用相同类型的脚本来运行服务器 但我想将其附加到 byobu 选项卡 而不是屏
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • GitHub Actions:如何将 toJSON() 结果传递给 shell 命令

    因此 我正在与 Github Actions 合作进行端到端测试 我正在查看的设置是让一项作业检索要测试的 url 列表 而我的第二项作业使用该列表创建一个矩阵并测试所有这些 我的问题是 当我实际运行测试脚本时 必须从命令行完成 因为我使用

随机推荐

  • 在 bash 脚本中使用 grep 在日志文件上使用 tail -f

    我想创建一个脚本来查找正在写入的日志文件中的特定字符串 我想获取第一个结果并将其放入变量中以供以后使用 这将通过 SSH 连接使用 如下所示 ssh email protected bash s lt usr local bin check
  • 默认情况下使用 uuid 时 Cassandra TimeUUID 泛洪文件描述符

    我有 Cassandra 模型 import uuid from cassandra cqlengine import columns from cassandra cqlengine models import Model class M
  • 如何使用 24 位位图的 ScanLine 属性?

    如何使用ScanLine24 位位图像素操作的属性 为什么我应该更喜欢使用它而不是经常使用Pixels财产 一 简介 在这篇文章中我将尝试解释ScanLine属性用法仅适用于 24 位位图像素格式以及您是否确实需要使用它 首先来看看是什么让
  • 带有 CUDA 的 Pytorch 在 Ubuntu 上本地安装失败

    我正在尝试使用 CUDA 安装 PyTorch 我按照中提到的说明 使用 conda 安装 进行操作https pytorch org get started locally conda 安装 pytorch torchvision tor
  • 在 Ubuntu 上安装 Mono-Complete 4.8

    我正在尝试安装Mono 4 8 in a Docker图片 但我下载失败 这是 dockerfile RUN apt get update apt get install y curl rm rf var lib apt lists apt
  • 如何附加到 Azure 存储文件共享中的文件?

    我想将条目写入存储在 Azure 文件存储中的日志文件 我目前有这个 var log My log entry var client storageAccount CreateCloudFileClient var share client
  • 如何在 MongoDB shell 中创建可尾游标?

    我想直接在 MongoDB 中为上限集合创建一个无限处理循环 但我找不到如何在 MongoDB shell 中获取 tailabale 游标 在 Python 中可以使用tailable选项中集合 find 尽管 您可以使用 addOpti
  • Java:读取一个巨大文件的最后n行

    我想读取一个非常大的文件的最后 n 行 而不使用 Java 将整个文件读入任何缓冲区 内存区域 我查看了 JDK API 和 Apache Commons I O 但无法找到适合此目的的一个 我正在考虑 tail 或 less 在 UNIX
  • 使用for循环匹配具有各种扩展名的文件[重复]

    这个问题在这里已经有答案了 我正在尝试匹配并循环扩展名为 txt h py 的文件 在特定文件夹 arg 中 这是我所做的 for file in arg txt h py do done 然而 即使我有这样的文件 我也没有得到所有扩展名的
  • Android-Listview项目滚动时背景颜色变化

    My ListView包含两个Textviews 在一行中 第一个用于名称 第二个用于结果 我需要更改结果的背景颜色TextView根据结果 就像如果通过那么结果TextView结果失败时颜色将为绿色TextView颜色将是红色 我有十行L
  • NSJSONSerialization + AFNetworking 出现无法识别的选择器错误

    Update 我刚刚使用以下命令测试了从服务器返回的 JSON 格式JSONlint没关系 我在 AFNetworking 调用返回 JSON 数据的 php 脚本时遇到 NSJSONSerialization 异常 我在这里查看了具有相同
  • 复制时可执行文件以某种方式损坏

    我正在使用Qt的QNetworkAccessManager从一个地方 当前是本地机器 但将来它将是一个HTTP服务器 下载一个文件并将其临时存储在TEMP文件中 linux ubuntu 我发现的问题是该文件 这是一个可执行文件 在此过程中
  • PHP 获取目录中图像的尺寸

    我有大量照片需要整理 我需要知道每张照片的尺寸才能知道 否则需要重新调整大小 作为一名程序员 我相信必须有一种更快的方法来做到这一点 我已经走了很远了 以下代码读取目录和所有子目录 但当我尝试提取尺寸时 循环在需要检查的所有图片的 8 处停
  • 如何删除数组中的“空”元素?

    我目前正在做一个编码挑战 其中指出 给定一个单词列表 返回可以在美式键盘的一行上使用字母输入的单词 如下图所示 这是 QWERTY 键盘的图像 例子 Input Hello Alaska Dad Peace Output Alaska Da
  • Rust 打印后从控制台读取输入

    我只是在制作一个小程序 我试图通过控制台从用户那里获取输入 这是我的代码 print Enter values seperated by spaces let mut input String new match io stdin read
  • 通过HTTP适配器传递参数?

    我想在用户注册我的混合应用程序 基于 IBM Worklight 6 0 后向他 她发送一封电子邮件 我想将用户的参数 电子邮件 ID 传递到托管的 PHP 文件 我尝试直接在 URL 中发送邮件 如下所示 效果如下 http www xx
  • 将 sass 列表传递给具有多个参数的 mixin

    我正在尝试创建一个 sass mixin 它将列表中不确定数量的项目作为 mixin 中的参数 最终目标是拥有一个 mixin 可用于设置进度条不同值的颜色样式 即当进度条具有较低值时为红色 这是我为 mixin 想到的 mixin pro
  • 将粘贴表从 sql-server 复制到 Excel 的最快 ADO

    我正在将数据表从 sql server 移动到 Excel 中 我不需要浏览记录集 只是为了获取数据并将其粘贴到工作表中 我是否为记录集使用了正确的参数Open方法 Dim recSet As ADODB Recordset Set rec
  • 如何使用 awswrangler 只读取 S3 中存储的 parquet 文件的前几行 N 行?

    我正在尝试使用 awswrangler 将存储在 S3 中的任意大的 parquet 文件读入 pandas 数据帧 但将我的查询限制为第一个N由于文件的大小 以及我较差的带宽 而导致的行 我不知道如何做到这一点 或者是否可以在不搬迁的情况
  • 是否可以从 bash 脚本设置超时? [复制]

    这个问题在这里已经有答案了 有时我的 bash 脚本会在没有明确原因的情况下挂起并保持 所以它们实际上可以永远挂起 脚本进程将运行直到我杀死它 是否可以结合 bash 脚本超时机制 以便在 小时后退出程序 这种仅限 Bash 的方法通过将函