刨根问底:linux中bash shell中SIGHUP和SIGTERM信号的处理
新人最容易发生的事情就是用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信号的处理相关推荐
- linux bash and,linux bash shell中for的用法and示例
关于linux bash shell中的for语句 在linux中shell是必不可少的一部分,但是在bash shell中有while,for,until等循环命令,今天就介绍一下关于for的一些用 ...
- linux 中输入bash,Linux上Bash Shell编程
Linux下Bash Shell编程 Bash Shell Programming in Linux Linux下Bash Shell编程 Bash what? 进阶的内容是什么? Okay, I g ...
- Bash Shell中16进制数字和ASCII字符相互转换
Bash Shell中ASCII值和字符之间的转换 1.数值转换为ASCII字符 方法一: i=97echo $i | awk '{printf("%c", $1)}' 方法二: ...
- linux 10 -Bash Shell编程
二十三. Bash Shell编程: 1. 读取用户变量: read命令是用于从终端或者文件中读取输入的内建命令,read命令读取整行输入,每行末尾的换行符不被读入.在read命令后面,如果 ...
- 基于Linux的bash/shell编程基础
目录 第一章 shell入门 1.什么是shell 2.shell入门 3,变量的定义和使用 4.接收用户输入(重点) 5.条件判断语句 6.运算符 6.1.算数运算符 6.2.关系运算符 6.3.逻 ...
- linux基础:shell中的sh与bash区别与常用命令
目录 一,什么是sh和bash? 二,shell的基本用法 2.1,变量 2.2,算术运算 2.3,使用 bash 计算器在shell脚本中进行浮点运算 2.4,shell中的条件判断命令test和[ ...
- linux shell 获取环境变量,bash shell中的环境变量
环境变量--bash shell使用环境变量来存储系统相关数据,并允许将数据存储在内存中. 环境变量分为:全局环境变量 本地环境变量 目录全局环境变量 本地环境变量 设置全局环境变量 删除环境变量 P ...
- win10复制粘贴linux,如何在Windows 10的Bash Shell中启用复制和粘贴键盘快捷键 | MOS86...
Windows 10s Bash shell终于有了方便的复制和粘贴键盘快捷键,但是出于兼容性原因,默认情况下将它们禁用. 这些快捷方式在2018年10月更新中可用,该更新最初代号为Redstone ...
- linux shell调用c 程序设计,linux – 在bash -c中设置变量
您必须在最终的echo命令中转义$符号,否则变量$HOST_IPS将在子shell生成之前被替换为命令字符串: /usr/bin/bash -c "HOST_IPS=$(/usr/bin/i ...
最新文章
- linux mysql添加用户名和密码错误,linux下为mysql设置用户名和密码
- 德国虚拟主机 linux,细说Linux虚拟主机的搭建及配置
- Wind River Helix系统及物联网解决方案 简化企业IOT部署
- webpack4+react多页面架构
- hdu3706基础的单调队列
- SpringMVC应用拦截器判断用户是否登录
- AIDE支持实时错误检查、代码重构、代码智能导航、生成APK
- 京东上市了,员工有多少股票? .
- Python_微信开发
- java this关键字的使用_Java this 关键字的使用方法详解
- 机器学习---数据简介及数据清洗概述
- 【数据可视化应用】绘制风玫瑰图(附Python代码)
- 高分三号卫星(GF-3)简介
- js实现农历时间代码
- 锁定计算机过久电脑自动关机,为什么电脑一锁定就会自动关机
- Qt QSetting 读写ini配置文件(简单明了,多图)
- Oracle的sqlnet.ora文件配置
- 《麦田里的守望者》 经典摘录
- 283页K8S实战指南,内容详实,代码齐全可复制!
- 括弧匹配检验:比较基础的栈
热门文章
- python基因差异分析_Biopython基因组分析
- 深度神经网络为什么有效,神经网络处理什么问题
- java对象实例化内存布局与访问定位
- 非线性方程(组):计算基本理论
- LNMP环境搭建之编译安装指南(php-5.3.27.tar.gz)
- 干草堆[单调队列优化DP]
- Spreadsheet_Excel_Writer
- 一卡通变“一脸通”,人脸识别让校园更安全
- WPF真入门教程02--新建WPF工程
- 【Oracle】导入/导出DMP文件