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 的相关文章

随机推荐

  • 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