Linux:如何杀死睡眠

2024-03-22

更多的是一个概念性问题。如果我写一个 bash 脚本来做类似的事情

control_c()
{
echo goodbye
exit #$
}

trap control_c SIGINT

while true
do
sleep 10 #user wants to kill process here.
done

sleep 10 运行时 control+c 不会退出。是因为linux sleep忽略SIGINT吗?有没有办法绕过这个问题,让用户能够通过 cntrl+c 退出睡眠状态?


您所描述的内容与仅发送给您的中断信号一致bash脚本,而不是进程组。您的脚本收到信号,但是sleep不,所以你的陷阱直到之后才能执行sleep完成。标准技巧是跑sleep在背景和wait上,这样wait接收中断信号。然后您还应该明确发送SIGINT任何仍在运行的子进程,以确保它们退出。

control_c()
{
echo goodbye
kill -SIGINT $(jobs -p)
exit #$
}

trap control_c SIGINT

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

Linux:如何杀死睡眠 的相关文章

  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • 为什么 Linux perf 使用事件 l1d.replacement 来处理 x86 上的“L1 dcache misses”?

    在英特尔 x86 上 Linux用途 https stackoverflow com a 52172985 149138事件l1d replacements来实施其L1 dcache load misses event 该事件定义如下 计数
  • Pure Bash 替换捕获组

    我有这个示例字符串 test string 13A6 该字符 数字可以是从 0 到 9 以及从 A 到 F 我想要这个输出 1 3 A 6 我有这个工作 result echo test string sed s g 我想在没有 sed 的
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • bash 行长度限制从何而来?

    在运行 Bash 4 4 19 标准安装 的 Solaris 11 上 输入行似乎有 256 个字符的限制 我想了解这个限制从何而来 我浏览了手册页 但没有找到任何解决此问题的内容 仅当未使用 readline 库时才会发生这种情况 在下面
  • 在哪里可以找到并安装 pygame 的依赖项?

    我对 Linux 比较陌生 正在尝试安装 python 的 pygame 开发环境 当我运行 setup py 时 它说我需要安装以下依赖项 我找到并安装了其中之一 SDL 然而 其他人则更加难以捉摸 Hunting dependencie
  • fopen 不返回

    我在 C 程序中使用 fopen 以只读模式 r 打开文件 但就我而言 我观察到 fopen 调用没有返回 它不返回 NULL 或有效指针 执行在 fopen 调用时被阻止 文件补丁绝对正确 我已经验证过 并且不存在与权限相关的问题 任何人
  • 匹配模式后添加行[重复]

    这个问题在这里已经有答案了 我有一个文件说test具有以下值 Linux Solaris Fedora Ubuntu AIX HPUX 如何在匹配 AIX 的行后面添加一行系统主机名 如果我做 echo hostname gt gt tes
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • OSX bash 最小化窗口

    在 Mac 中并使用 bash shell 我想执行一个包含单个命令 启动 Jupyter Lab 的文件并立即最小化终端窗口 有没有办法在不安装第三方软件的情况下做到这一点 是的 只需使用osascript https ss64 com
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

    假设我有一个字符串5a 这是 ASCII 字母的十六进制表示Z 我需要找到一个 Linux shell 命令 它将接受一个十六进制字符串并输出该十六进制字符串代表的 ASCII 字符 所以如果我这样做 echo 5a command im
  • 如何在Linux内核源代码中打印IP地址或MAC地址

    我必须通过修改 Linux 内核源代码来稍微改变 TCP 拥塞控制算法 但为了检查结果是否正确 我需要记录 MAC 或 IP 地址信息 我使用 PRINTK 函数来打印内核消息 但我感觉很难打印出主机的MAC IP地址 printk pM
  • 动态参数值取决于另一个动态参数值

    启动前提 非常严格的环境 Windows 7 SP1 Powershell 3 0 使用外部库的可能性有限或不可能 我正在尝试重写之前创建的 bash 工具 这次使用 PowerShell 在 bash 中 我实现了自动完成功能 以使该工具
  • 从 php 执行 bash 脚本并立即输出回网页

    我有一组 bash 和 Perl 脚本 开发在 Linux Box 上部署所需的目录结构 可选 从svn导出代码 从这个源构建一个包 这在终端上运行良好 现在 我的客户请求此流程的 Web 界面 例如 某些页面上的 创建新包 按钮将一一调用
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L
  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件

随机推荐

  • 如何在c中通过指针传递二维数组[重复]

    这个问题在这里已经有答案了 可能的重复 将表示二维数组的指针传递给 C 中的函数 https stackoverflow com questions 5329107 passing a pointer representing a 2d a
  • LLVM 6.0.0 的构建大小很大 (42G)

    I built llvm 6 0 0从源头开始 一切正常 我只是想知道它的尺寸怎么这么大 42G 我可以轻松删除一些目标文件或其他文件以使构建目录更小吗 du hs GIT llvm 6 0 0 build 42G home oren GI
  • 当 Bash 脚本编写和捕获输出时,在后台使用与号 (&) 分叉命令

    我希望在后台分叉一个进程 同时捕获 bash 脚本中的输出 我可以运行以下脚本来 ping IP 列表 它将每个调用移至后台并且运行速度非常快 但它不会捕获执行命令的输出以供进一步处理 for i in cat list txt do pi
  • 如何在 Visual C++ 2008 中创建 UTF-8 字符串文字

    在 VC 2003 中 我可以将源文件保存为 UTF 8 并按原样使用所有字符串 换句话说 以下代码将按原样将字符串打印到控制台 如果源文件保存为 UTF 8 则输出将为 UTF 8 printf Chinese Traditional p
  • Intel Fortran 错误 #6633:实际参数的类型与虚拟参数的类型不同

    对于可能在这里提出这样一个基本问题 我深表歉意 我是使用英特尔 Fortran 编程的新手 所以我认为在这种情况下 我不知道有一些东西丢失或组织错误 如果有人能在这方面帮助我 我将不胜感激 问题是我在编译代码时看到以下错误 而我相信我已经声
  • 如何在 Android 上创建渐进式 JPEG 图像

    我需要通过very来自 Android 手机的低带宽连接 低至 10kByte s 并希望以渐进 隔行 模式发送它们 以便另一端的用户在漫长的传输过程中开始看到图像 现在 我正在使用常规照片应用程序创建图像 Intent takePictu
  • 突变观察者 - DOM 通过回调函数改变

    有没有办法 如何强制突变观察者忽略回调函数引起的 DOM 变化 现在我有 var config attributes true childList true characterData true var target document bo
  • 如何在 Visual Studio 中获得 .feature 文件的 Gherkin 语法突出显示?

    默认情况下 Feature Scenario Given When Then 等关键字不会突出显示 是否有现成的模板可以实现此目的 最新版本SpecFlow http www specflow orgVS2010有一个内置的语法高亮
  • 通过绘图下拉菜单切换显示的迹线

    我正在使用 R 编程语言 我试图在这里复制本教程以获取我自己的数据 https plotly com r dropdowns https plotly com r dropdowns 我创建了一些假数据并绘制了 4 个图 load libr
  • Rails.env 与 RAILS_ENV

    在检查运行环境时 我在示例中看到了这两种情况 首选什么 就所有意图和目的而言 它们是否平等 根据文档 http api rubyonrails org classes Rails html method c env Rails env wr
  • 如何修复 BBcode 正则表达式

    我有一个获取 BBcode 标签的正则表达式 除了一个小故障之外 它工作得很好 这是当前的表达式 x22 x22 1 以下是它成功匹配的一些文本及其构建的组 url http www google com 去 http www google
  • 将可选属性表示为 C++ 类成员

    我正在根据模式生成 C 代码 存在实体 每个实体包含属性 每个属性具有相应的数据类型 现在的问题是其中一些属性是 可选的 这意味着它们不必是类声明的一部分 然而 在C 中 某些东西要么是类的成员 要么不是类的成员 没有诸如 可选数据成员 之
  • Android 子模块中的数据绑定

    我有一个应用程序模块 让我们说 测试 测试 模块依赖于子模块 B 两者都启用数据绑定 在库模块 B 中 我使用数据绑定创建一个简单的活动 其目的是为了可重用性 例如 我可以创建一个基本登录屏幕并稍后在许多应用程序中使用它 下面是B包中的示例
  • Microsoft Visual Studio 和 C#:如何以可视方式向控件添加事件?

    如何使用 C 将事件处理程序添加到 Microsoft Visual Studio 2008 窗体中的控件 我可以手动执行此操作 但打开表单的 Designer cs 文件 但我找不到通过界面执行此操作的方法 在 MSVC 6 中 使用 C
  • 如何使用 Mysql Joins 而不是嵌套子查询来获得相同的结果?

    我有一些嵌套子查询 结果非常慢 我正在努力用 Mysql Joins 重写相同的代码 我希望有人可以帮助我 我想从数据库中除播放列表中的歌曲之外的所有歌曲中获取数据 之后我只想要播放列表中的歌曲 在这里你可以看到我的查询 提前致谢 Quer
  • 记录内存访问足迹

    I found mtrace https github com aclements mtrace克莱门茨博士 虽然很有用 但是在我需要的情况下却不能正常工作 我打算使用该记录来了解不同场景下的内存访问模式 有人可以分享相关经验吗 任何建议将
  • 在哪里可以找到“mysqldump”退出代码列表?

    我知道exit code 0 means No error I got exit code 2 这是什么意思 我在哪里可以看到完整的列表mysqldump退出代码 取自 MySQL 5 1 59 中的 client mysqldump c
  • Nagios(返回码 255 超出范围)

    我收到错误 返回代码 255 超出范围 http localhost nagios http localhost nagios 但是当我从 shell 运行命令时 它运行良好 如果您使用 NRPE 并收到 NRPE 无法读取输出 错误是因为
  • 为什么 CFileDialog::DoModal() 挂起?

    我在Win XP平台上用VS 6 0开发了一个相当大的C 程序 现在已经迁移到运行Win 7的新机器 仍然运行VS 6 0 该代码包含一个函数 用于实例化并运行 CFileDialog 对象 以从特定的初始目录查找并打开具有特定扩展名的 A
  • Linux:如何杀死睡眠

    更多的是一个概念性问题 如果我写一个 bash 脚本来做类似的事情 control c echo goodbye exit trap control c SIGINT while true do sleep 10 user wants to