当前位置: 首页 > news >正文

营口网站建设点餐小程序源码下载

营口网站建设,点餐小程序源码下载,上海网站建设公司兴田德润放心,wordpress动漫整站前言 问题来自于文章 shell脚本 后台启动 程序1 “tail -f log“, ctrl c 导致程序1中断 中的测试用例 Test07Signal2ParentProcess, 可以看到 我当时标记了一个 "todo, not work in hostpostVM9" 然后 问题是这样的, 我同一台机器, 然后 jdk8 带上 SIGINFO 去执行…

前言

问题来自于文章 shell脚本 后台启动 程序1 + “tail -f log“, ctrl +c 导致程序1中断 中的测试用例 Test07Signal2ParentProcess, 可以看到 我当时标记了一个 "todo, not work in hostpostVM9"

然后 问题是这样的, 我同一台机器, 然后 jdk8 带上 SIGINFO 去执行 Test07Signal2ParentProcess 没有问题, 但是 jdk9 带上 SIGINFO 去执行 Test07Signal2ParentProcess 报错如下 

然后 jdk9 执行报错如下 

Exception in thread "main" java.lang.IllegalArgumentException: Unknown signal: INFOat java.base/jdk.internal.misc.Signal.<init>(Signal.java:148)at jdk.unsupported/sun.misc.Signal.<init>(Signal.java:139)at com.hx.test13.Test07Signal2ParentProcess.main(Test07Signal2ParentProcess.java:50)

这个就很奇怪了,信号支持哪些 不是和操作系统有关系嘛? 为什么 和 jdk 也有关系 

我们这里会大致剖析一些东西, 在 mac 上面造成上面这个问题的原因 

kill -l 所支持的信号列表是怎么来的? 

操作系统支持 的信号列表?

jdk8/jdk9 对于 Signal.findSignal 的处理

首先看一下 jdk9, jdk9 这里几种类unix操作系统是走的统一处理 

是从 g_signal_info 中遍历匹配给定的信号名称, 如果找不到 返回 -1, 否则返回对应的 索引

g_signal_info 是取自于这里, 根据 signal.h 中是否支持给定的信号, 创建的信号映射数组  

mac 上面是支持 SIGINFO 信号, 但是 g_signal_info 中没有 SIGINFO 的处理, 因此 最终 jdk9 中不支持 SIGINFO 

最终没有找到 SIGINFO 的信号, 然后 外层 jdk 抛出异常 

最终由 Signal 的构造方法抛出 "Unknown signal: INFO" 的异常 

再来看一下 jdk8, jdk8 这里不同的操作系统是走的不同的处理 

signaltable 是根据操作系统, 配置死的 

jdk8 支持的 信号列表

HUP
INT
QUIT
ILL
TRAP
ABRT
EMT
FPE
KILL
BUS
SEGV
SYS
PIPE
ALRM
TERM
URG
STOP
TSTP
CONT
CHLD
TTIN
TTOU
IO
XCPU
XFSZ
VTALRM
PROF
WINCH
INFO
USR1
USR2

jdk9 支持的信号列表 

ABRT
ALRM
BUS
CHLD
CONT
EMT
FPE
HUP
ILL
INT
IO
KILL
PIPE
PROF
QUIT
SEGV
STOP
SYS
TERM
TRAP
TSTP
TTIN
TTOU
URG
USR1
USR2
VTALRM
WINCH
XCPU
XFSZ

mac 支持的信号列表

HUP
INT
QUIT
ILL
TRAP
ABRT
POLL
IOT
EMT
FPE
KILL
BUS
SEGV
SYS
PIPE
ALRM
TERM
URG
STOP
TSTP
CONT
CHLD
TTIN
TTOU
IO
XCPU
XFSZ
VTALRM
PROF
WINCH
INFO
USR1
USR2

参照对比一下 jdk8 比 jdk9 多支持一个 SIGINFO 

mac本身 比 jdk8 多支持 POLL, IOT

所以在 jdk8 中支持的 信号是由 jvm 决定的, 在 jdk9 中支持的信号是由 jvm + 操作系统来决定的

kill -l 所支持的信号列表是怎么来的?  

查看一下 coreutils 的 kill 的代码  

将 名称 转换为索引 

名称列表来自于 kill 程序, 信号是否支持 来自于 操作系统的 signal.h 

signal.h 

所以 kill 中支持的信号是由 kill + 操作系统来决定的 

操作系统支持 的信号列表? 

mac 支持如下信号列表 

大部分的 x86 的其他 linux 支持如下的信号列表 

完 

http://www.dtcms.com/a/510302.html

相关文章:

  • 网站建设初期怎么添加内容visual studio 做网站
  • 哪里可以学seo课程wordpress seo插件哪个好
  • wordpress没有显示安装插件网站结构优化包括什么
  • 建立网站需要多少钱八寇湖南岚鸿团队网站浏览器兼容问题
  • 百度推广还要求做网站建设网站需要什么资质吗
  • 山东做网站找哪家好杭州seo专员
  • 建设银行网站电子支付在哪里安卓app在线生成
  • 一键生成作文的网站淘客请人做网站
  • 一个网站推广前端企业网站开发
  • 郑州网站免费制作深圳注册公司的流程和材料
  • 新郑做网站推广泉州住房与城乡建设网站
  • 内蒙古工程建设协会官方网站软件商店下载安装app
  • 网站备案号云南人
  • asp.net创建项目和创建网站的区别哈尔滨网站设计培训班
  • 夫妻找做伙食饭工作哪个网站好印象笔记 wordpress
  • 做资源的教育类网站或公司装修效果图网站
  • 做网站时候图片和视频放在哪里湖南免费网站建设
  • 更改网站主题中国建设银行网站-个人客
  • 福永网站建设多少钱推荐网站空间购买
  • 视频解析接口网站怎么做营销型网站建设需要有什么功能
  • 公众号开发者刷新数据丢失通辽网站seo
  • 国内知名网站建设公司seo学院
  • 网站负责人 主体负责人什么网站可以做简历模板
  • 永久免费手机建站平台2022年网络流行语
  • 如何建立一个网站的快捷方式网站建设seo优化价格
  • 山东省建设教育集团网站首页白杨seo
  • 网站优化目的百度排名怎么做
  • 如何注册网站免费注册wordpress 外网访问
  • 一级域名和二级域名做两个网站网站开发公司的义务
  • dede手机网站建设教程中国建设银行网站签名通下载