linux shell 终止信号 SIGKILL && KILL

2024-03-25

我刚刚写了一个shell脚本来控制模块的启动和停止。一切看起来都很正常,直到我发现停止命令导致了意想不到的结果。

我使用命令kill -s SIGKILL -- -gpid杀死一组进程。我用/bin/sh像这样运行命令

/bin/sh -c "kill -s SIGKILL -- -gpid"

哪个回答了错误



/bin/sh: line 0: kill: SIGKILL: invalid signal specification
  

然后我更换了/bin/sh with /bin/bash,所以命令是

/bin/bash -c "kill -s SIGKILL -- -gpid"

没有回复任何错误。所以我总结解释是bash和sh的区别导致了这个结果。然而,当我ls the /bin/sh,我找到了/bin/sh是一个符号链接/bin/bash,所以命令应该是相同的。

我找到了命令语法kill -s SIGKILL不在推荐的语法中,kill -s KILL受到推崇的。

所以我用KILL替换了SIGKILL,命令是

/bin/sh -c "kill -s KILL -- -gpid"

没有回复任何错误。如上所述,任何人都可以解释这个案例。


唯一的truly编写此命令的便携式方法是

kill -9 -$gpid

None指定信号的方法name而不是 Unix 上的信号号工作,在 90 年代中期冻结了它们的 shell 实用程序,这基本上是除了 Linux 和开源 BSD 之外的所有 UNIX 上的功能。然而,SIGKILL 是可靠的信号编号 9,并且一直如此(从 V7 开始,如果不是更早的话)。

特殊论证--也不是便携式的,并且在这种情况下是不必要的。

如果你想更有礼貌一点(改为发送 SIGTERM),那么使用

kill -15 -$gpid

同样,这个数字一直到 V7 都是可靠的。

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

linux shell 终止信号 SIGKILL && KILL 的相关文章

  • 错误:“rjags”的包或命名空间加载失败

    在终端的 conda 环境之一中 我能够成功安装包 rjags 但是 当我在该环境中运行 R 并运行库 rjags 时 出现以下错误 加载所需的包 coda 错误 rjags 的包或命名空间加载失败 rjags 的 loadNamespac
  • 如何扩展路径中的波形符(~)[重复]

    这个问题在这里已经有答案了 我有一个 shell 脚本 可以从用户那里获取目录路径 但我需要检查目录是否为空 如果用户将他的主路径与 而不是绝对路径 所以我无法检查它ls echo Specify your project root dir
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • linux下如何从文本文件中获取值

    我有一些文本格式的文件 xxx conf 我在这个文件中有一些文本 disablelog 1 当我使用 grep r disablelog oscam conf 输出是 disablelog 1 但我只需要值1 请问你有什么想法吗 一种方法
  • Rails 4.1 环境变量未重新加载

    我创建了一个application yml文件在配置目录中并添加了一些键值对 即AWS REGION us east 1 我还添加了以下内容application rb读取文件并更新 ENV 哈希 if Rails env developm
  • 如何使用 mediawiki 的 api、curl 和 bash 登录?

    我对流程的理解 来自 mediawikis 登录手册https www mediawiki org wiki API 登录 https www mediawiki org wiki API Login 使用 MediaWiki 的 Web
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • 检查已安装的软件包,如果没有找到则安装

    我需要检查已安装的软件包 如果未安装则安装它们 RHEL CentOS Fedora 示例 rpm qa grep glibc static glibc static 2 12 1 80 el6 3 5 i686 如何在 BASH 中进行检
  • 如何检查主机是否在您的known_host ssh中

    我的脚本中使用以下命令 将主机添加到 ssh 中的已知主机 VAR2 expect c spawn ssh o StrictHostKeyChecking no REMOTE HOST USER REMOTE HOST IP expect
  • 为使用 SSH.NET SshClient.CreateShellStream 执行的命令 (sudo/su) 提供子命令

    我正在尝试使用 Renci SSH NET 从 C Web 应用程序连接到远程 Linux 服务器并执行 shell 脚本 我想一个接一个地运行脚本 但不知道如何运行脚本并读取输出并将其存储在标签中 我已经尝试了下面的代码 但无法一行接一行
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • x86-64 AMD 上 CALL 指令的操作数生成

    以下是示例程序 objdump 的输出 080483b4
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser
  • express.js api 应用程序中的内存泄漏

    我正在运行一个express js应用程序 它用作REST API 一个端点启动 puppeteer 并使用多个过程测试我的网站 启动应用程序并持续消耗端点后 我的 docker 容器每小时都会耗尽内存 如下所示 首先 我认为我的 pupp
  • 如何wget目录中最新的文件

    我想编写一个 bash 脚本来下载并安装最新的每日构建程序 RStudio 是否有可能使wget仅下载目录中最新的文件http www rstudio org download daily desktop http www rstudio
  • Eclipse 的 Bash 脚本插件? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有正经的bashEclipse 的插件 我唯一的要求是语法突出显示 我用谷歌搜索过 但没有看到任何
  • 如何在Linux中自动启动需要X的应用程序

    我试图在系统进入运行级别 5 时自动启动 X 应用程序 这样做的正确方法是什么 我写了一个脚本并将其放在 etc init d 中 我已运行适当的 chkconfig 命令来设置 etc rcX d 目录中的符号链接 一切工作正常 除了当我
  • 如何找到进程启动时使用的原始用户名?

    有一个 perl 脚本需要以 root 身份运行 但我们必须确保运行该脚本的用户最初没有以用户 foo 身份登录 因为它将在脚本运行期间被删除 那么 我如何查明自登录以来可能已多次起诉的用户是否在该链中的任何时间都没有模拟过 foo 我发现

随机推荐

  • Apache poi - 打印布局,同一张纸上有多个打印区域

    我正在尝试开发一份复杂的报告 并且需要为 Excel 文件设置打印区域 我必须将 xls 文件分成 3 部分 但如果我执行 setPrintArea 新区域会订阅旧区域 结果是我在打印预览中只有最后一页 如何设置多个打印区域 这是代码 pr
  • JNZ 和 CMP 组装说明

    如果我错了请纠正我 这是我的理解JNZ and CMP JNZ 跳跃将会发生 如果Z标志不为零 1 CMP 如果两个值相等 则Z标志已设置 1 否则未设置 0 这是我正在看的 Flash 教程 它正在教授一个简单的 CrackMe 的解决方
  • Field.get(obj) 在注入的 CDI 托管 bean 上返回所有 null,而手动调用 getter 返回正确的值

    我试图通过反射从 JSF 页面的支持 bean 访问某些字段的值 问题是 当我使用 getter 时 我得到了正确的值 但是当我使用必要字段的 get obj 方法时 我总是得到一个空值返回 获取bean对象 ELContext elcon
  • 是否可以将 Java 7 与 IBM WebSphere Application Server 8.5 试用版一起使用

    我已经安装了WAS 8 5TrialWindows 7 上的版本 我想部署并运行 Java 7 应用程序 有可能做到吗 我在 IBM Installation Manager 的功能列表中看不到 IBM WebSphere SDK for
  • 在界面生成器中设置自动调整大小时出现问题

    我有两个 viewController 一个是 UIViewController 的子类 正确自动调整大小 另一个是 UIViewController 子类的子类 我在 Interface Builder 中进行了布局 在模拟器中测试了我的
  • iOS 13 UIView 截图无法正常使用。 iOS 12 运行良好

    我在截取包含显示其中视频流的子视图的主 UIView 时遇到问题 当我截取屏幕截图时 图像是正确的 减去带有黑色视频流的矩形 流图像未显示 截图有问题截图图像不好 https i stack imgur com Cxj3K jpg 和正确的
  • 从资源加载时在 DataGridView 中显示红色“X”的图像

    我正在尝试将我的项目资源中的图像列添加到新创建的 DataGridView 这是代码 DataGridViewImageColumn myImage new DataGridViewImageColumn myImage Image Pro
  • Code First 实体框架多对多关系

    谁能指出我哪里错了 我创建了两个简单的类 具有多对多的关系 工作正常 所有表都已正确填充 除了当我尝试检索任何学生课程时 什么都没有返回 public partial class Student public Student Courses
  • 如何使用 DataBinding Framework MVVM 在 EditText 上设置错误

    我正在使用 Android 数据绑定框架 我假设有一个用于登录表单的 EditText 用户名如下
  • 如何在 popper-js 中显示箭头

    我正在尝试使用popper js https popper js org index html 但我很难阅读文档并让事情正常运行 我似乎无法理解arrow显示 指向引用元素的三角形 下面的代码缩小了我想要做的事情 弹出器显示并定位在内容加载
  • csv 模块返回第一列的 BOM

    我有一个 csv 文件 格式如下 type type mapping style style mapping Count Residential Residential Antique Antique 109 Antique Residen
  • Azure Key Vault - 编程创建

    如何在 NET Core 应用程序中使用 C 以编程方式创建 Azure KeyVault 我看过之后写入和读取密钥库的示例 它是配置的 但不是在创建 kv 本身时进行的 使用方法VaultsOperationsExtensions Cre
  • 滚动顶部动画后滚动/滚动条锁定

    我有一些链接到页面内特定部分 使用主题标签 的锚点 以及滚动到文档窗口顶部或底部的锚点 html body animate scrollTop document height 2000 但是 一旦动画和滚动到达目的地并完成 文档滚动和滚动条
  • 多选编辑表单选定值

    在 Laravel 4 中遇到一个问题时 在 联系人 模型编辑表单中 我可以获得所有字段的当前值 除了用于与另一个模型 公司 建立关系的多重选择的字段值 这是一种多对多的关系 我正在获取公司列表 但即使存在关系 也没有选择任何公司 这是我的
  • 如何解决WPF表单调整大小-控件滞后和黑色背景?

    我有一个非常简单的 WPF 窗口 其中唯一的东西是一个右对齐按钮 当我通过拖动左边界来调整窗口大小时 按钮会跳很多次 自己尝试一下 来回拖动左侧边界 此外 在调整大小期间 黑色背景会暂时暴露 In this https stackoverf
  • RSpec+Capybara 请求规范 w/JS 不起作用

    使用 Javascript 时我无法使请求规范正常工作 我的规格pass如果我在没有 Javascript 的情况下运行它们 页面构建为可以使用或不使用 JS 具体来说 当我进行如下断言时 规范会失败Post should have 1 r
  • 如何在pycharm中将部分文件(帅哥)提交到git

    我是 Eclipse PyDev EGit 的重度用户 希望切换到 PyCharm 在 Eclipse 中 我可以选择仅将文件的某些块 行添加到 git 索引 与使用相同git add p从航站楼 我发现通过 GUI 执行此操作更快 并且我
  • 如何将现有的嵌套存储库(已在子目录中签出)作为子模块添加到父 Git 存储库?

    如果我从工作 父 目录创建初始提交 但存在具有独立签出的 git 存储库的子目录 会发生什么情况 我只是做了git add 但这给我带来了一个奇怪的情况 即具有嵌套 Git 存储库的子目录未注册为父存储库的子模块 那么 在初始 git ad
  • 如何在R中生成偏态正态分布的随机数?

    我正在尝试生成 1000 组 130 个随机数 这些随机数符合以下数字的偏态正态分布 10 4 9 3 6 8 4 8 5 7 5 8 4 5 3 4 2 0 3 0 4 4 1 6 9 5 9 2 5 2 2 8 3 2 4 4 2 1
  • linux shell 终止信号 SIGKILL && KILL

    我刚刚写了一个shell脚本来控制模块的启动和停止 一切看起来都很正常 直到我发现停止命令导致了意想不到的结果 我使用命令kill s SIGKILL gpid杀死一组进程 我用 bin sh像这样运行命令 bin sh c kill s