java程序捕获kill信号
来源:互联网 发布:孙俪的淘宝店铺叫什么 编辑:程序博客网 时间:2024/04/29 16:51
- package com.ashu.test;
- import sun.misc.Signal;
- import sun.misc.SignalHandler;
- @SuppressWarnings("restriction")
- public class TestSignal implements SignalHandler {
- private void signalCallback(Signal sn) {
- System.out.println(sn.getName() + "is recevied.");
- }
- @Override
- public void handle(Signal signalName) {
- signalCallback(signalName);
- }
- public static void main(String[] args) throws InterruptedException {
- TestSignal testSignalHandler = new TestSignal();
- // install signals
- Signal.handle(new Signal("TERM"), testSignalHandler);
- Signal.handle(new Signal("USR1"), testSignalHandler);
- Signal.handle(new Signal("USR2"), testSignalHandler);
- for (;;) {
- Thread.sleep(3000);
- System.out.println("running......");
- }
- }
- }
testSignal重写了SignalHandler的handle方法,捕获到的kill信号也是最终在handle里处理。
在main里注册了三个kill信号:TERM(kill -15)、USR1(kill -10)、USR2(kill -12)
补充1:
在Linux下支持的信号(具体信号kill -l命令查看):
SEGV, ILL, FPE, BUS, SYS, CPU, FSZ, ABRT, INT, TERM, HUP, USR1, USR2, QUIT, BREAK, TRAP, PIPE
在Windows下支持的信号:
SEGV, ILL, FPE, ABRT, INT, TERM, BREAK
补充2:
运行中可能会抛出异常:
java.lang.IllegalArgumentException: Signal already used by VM: USR1
这是因为某些信号可能已经被JVM占用,可以考虑用其它信号代替
版权声明:本文为博主原创文章,未经博主允许不得转载。
0 0
- java程序捕获kill信号
- java程序捕获kill信号
- linux捕获KILL命令的信号
- Java命令行程序阻断操作系统Ctrl+C/kill命令等信号
- kill 信号
- java 捕捉信号(linux下的kill,ctrl+c)
- java 捕捉信号(linux下的kill,ctrl+c)
- Linux程序的常用信号中断捕获代码
- Linux程序退出时的信号捕获及处理
- 如何在go程序中捕获退出信号
- 如何在linux程序中捕获异常信号
- kill信号的使用
- linux kill信号列表
- linux kill信号列表
- Kill信号列表
- linux kill信号列表
- kill 信号列表
- linux kill信号列表
- 13. mysql 预处理
- 第七周 项目1 建立顺序环形队列算法库
- hdu 4866 Shooting(主席树学习第三弹)
- 由空是压缩方法(一)得到对观测矩阵的进一步研究
- 如何得到系统音频设备列表
- java程序捕获kill信号
- UML——构件图 部署图
- HP-EPM2-8组文化建设
- BZOJ1029: [JSOI2007]建筑抢修
- Linux lookback驱动分析
- 堆内存和栈内存详解(转载)
- iOS中 KVO 键值观察者
- 林达华:Computer Vision的尴尬
- linux命令概论