新人最容易发生的事情就是用ssh客户端(比如xshell)登录服务器之后,用&在后台执行了命令,第二天兴致勃勃去看任务,发现已经被kill了。一开始我学到的知识是,运行的后台命令都需要nohup,否则客户端退出后,后台命令也会被停止。
那时我还以为凡是父shell结束,都会给子任务发送signal,使其退出。然而编写cloudera-launcher的过程中,发现父shell接收到SIGTERM,并没有将其发送给子任务。
在bash的man中,看到了这样的解释

The shell exits by default upon receipt of a SIGHUP. Before exiting, an interactive shell resends the SIGHUP to all jobs, running or stopped.

也就是说interactive shell只会将SIGHUP信号给子任务

如果父shell需要将SIGTERM信号传播给子任务,常用的一个方法是用exec运行子任务
更详细的文章可以参考http://veithen.github.io/2014/11/16/sigterm-propagation.html

刨根问底:linux中bash shell中SIGHUP和SIGTERM信号的处理相关推荐

  1. linux bash and,linux bash shell中for的用法and示例

    关于linux bash shell中的for语句 在linux中shell是必不可少的一部分,但是在bash shell中有while,for,until等循环命令,今天就介绍一下关于for的一些用 ...

  2. linux 中输入bash,Linux上Bash Shell编程

    Linux下Bash Shell编程 Bash Shell Programming in Linux Linux下Bash Shell编程 Bash what? 进阶的内容是什么? Okay, I g ...

  3. Bash Shell中16进制数字和ASCII字符相互转换

    Bash Shell中ASCII值和字符之间的转换 1.数值转换为ASCII字符 方法一: i=97echo $i | awk '{printf("%c", $1)}' 方法二: ...

  4. linux 10 -Bash Shell编程

    二十三. Bash Shell编程: 1.  读取用户变量:     read命令是用于从终端或者文件中读取输入的内建命令,read命令读取整行输入,每行末尾的换行符不被读入.在read命令后面,如果 ...

  5. 基于Linux的bash/shell编程基础

    目录 第一章 shell入门 1.什么是shell 2.shell入门 3,变量的定义和使用 4.接收用户输入(重点) 5.条件判断语句 6.运算符 6.1.算数运算符 6.2.关系运算符 6.3.逻 ...

  6. linux基础:shell中的sh与bash区别与常用命令

    目录 一,什么是sh和bash? 二,shell的基本用法 2.1,变量 2.2,算术运算 2.3,使用 bash 计算器在shell脚本中进行浮点运算 2.4,shell中的条件判断命令test和[ ...

  7. linux shell 获取环境变量,bash shell中的环境变量

    环境变量--bash shell使用环境变量来存储系统相关数据,并允许将数据存储在内存中. 环境变量分为:全局环境变量 本地环境变量 目录全局环境变量 本地环境变量 设置全局环境变量 删除环境变量 P ...

  8. win10复制粘贴linux,如何在Windows 10的Bash Shell中启用复制和粘贴键盘快捷键 | MOS86...

    Windows 10s Bash shell终于有了方便的复制和粘贴键盘快捷键,但是出于兼容性原因,默认情况下将它们禁用. 这些快捷方式在2018年10月更新中可用,该更新最初代号为Redstone ...

  9. linux shell调用c 程序设计,linux – 在bash -c中设置变量

    您必须在最终的echo命令中转义$符号,否则变量$HOST_IPS将在子shell生成之前被替换为命令字符串: /usr/bin/bash -c "HOST_IPS=$(/usr/bin/i ...

最新文章

  1. linux mysql添加用户名和密码错误,linux下为mysql设置用户名和密码
  2. 德国虚拟主机 linux,细说Linux虚拟主机的搭建及配置
  3. Wind River Helix系统及物联网解决方案 简化企业IOT部署
  4. webpack4+react多页面架构
  5. hdu3706基础的单调队列
  6. SpringMVC应用拦截器判断用户是否登录
  7. AIDE支持实时错误检查、代码重构、代码智能导航、生成APK
  8. 京东上市了,员工有多少股票? .
  9. Python_微信开发
  10. java this关键字的使用_Java this 关键字的使用方法详解
  11. 机器学习---数据简介及数据清洗概述
  12. 【数据可视化应用】绘制风玫瑰图(附Python代码)
  13. 高分三号卫星(GF-3)简介
  14. js实现农历时间代码
  15. 锁定计算机过久电脑自动关机,为什么电脑一锁定就会自动关机
  16. Qt QSetting 读写ini配置文件(简单明了,多图)
  17. Oracle的sqlnet.ora文件配置
  18. 《麦田里的守望者》 经典摘录
  19. 283页K8S实战指南,内容详实,代码齐全可复制!
  20. 括弧匹配检验:比较基础的栈

热门文章

  1. python基因差异分析_Biopython基因组分析
  2. 深度神经网络为什么有效,神经网络处理什么问题
  3. java对象实例化内存布局与访问定位
  4. 非线性方程(组):计算基本理论
  5. LNMP环境搭建之编译安装指南(php-5.3.27.tar.gz)
  6. 干草堆[单调队列优化DP]
  7. Spreadsheet_Excel_Writer
  8. 一卡通变“一脸通”,人脸识别让校园更安全
  9. WPF真入门教程02--新建WPF工程
  10. 【Oracle】导入/导出DMP文件