java 捕捉信号(linux下的kill,ctrl+c)
2010-02-07 12:08
513 查看
import sun.misc.Signal; import sun.misc.SignalHandler; /*** * java信号处理demo * @author jiang_qh * */ public class SignalHandlerExample implements SignalHandler{ private SignalHandler oldHandler; public void handle(Signal signal) { System.out.println("Signal handler called for signal " + signal); try { signalAction(signal); // Chain back to previous handler, if one exists if (oldHandler != SIG_DFL && oldHandler != SIG_IGN) { oldHandler.handle(signal); } } catch (Exception e) { System.out.println("handle|Signal handler" +"failed, reason " + e.getMessage()); e.printStackTrace(); } } public void signalAction(Signal signal) { System.out.println("Handling " + signal.getName()); System.out.println("Just sleep for 5 seconds."); try { Thread.sleep(5000); } catch (InterruptedException e) { System.out.println("Interrupted: " + e.getMessage()); } } public static SignalHandler install(String signalName) { Signal diagSignal = new Signal(signalName); SignalHandlerExample instance = new SignalHandlerExample(); instance.oldHandler = Signal.handle(diagSignal, instance); return instance; } public static void main(String[] args) { //kill命令 SignalHandlerExample.install("TERM"); //ctrl+c命令 SignalHandlerExample.install("INT"); System.out.println("Signal handling example."); try { Thread.sleep(50000); } catch (InterruptedException e) { System.out.println("Interrupted: " + e.getMessage()); } } }
在linux上运行该程序。然后kill掉其pid,打印:
Signal handling example.
Signal handler called for signal SIGTERM
Handling TERM
Just sleep for 5 seconds.
[dispatch@localhost ThirdTest]$ sh signal.sh
Signal handling example.
Signal handler called for signal SIGTERM
Handling TERM
Just sleep for 5 seconds.
相关文章推荐
- java 捕捉信号(linux下的kill,ctrl+c)
- Linux进程间通信(四)---信号通信之信号发送捕捉kill()、raise()、alarm()、pause()及其基础实验
- Linux进程间通信(四)---信号通信之信号发送捕捉kill()、raise()、alarm()、pause()及其基础实验
- Linux捕捉信号机制之(signal,kill)、(sigaction,sigqueue)
- Linux进程间通信(四)---信号通信之信号发送捕捉kill()、raise()、alarm()、pause()及其基础实验
- Linux进程间通信--信号通信之信号发送捕捉kill()、raise()、alarm()、pause()及其基础实验
- linux信号机制之sigaction结构体浅析,signal 函数,信号捕捉
- linux kill java
- linux信号机制之sigaction结构体浅析,signal 函数,信号捕捉
- linux给线程发信号pthread_kill
- 嵌入式 - Linux下kill常用信号解释
- Linux C++ 处理 Kill 信号、Ctrl+C信号,便于安全退出
- Linux 信号捕捉trap
- linux kill java
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - 安装信号与捕捉信号 分类: Linux --- 应用程序设计 2014-11-08 13:00 49人阅读 评论(0) 收藏
- Linux入门:信号(三)——捕捉信号
- linux 信号安装、signal、kill,arise讲解
- Linux 命令 - kill: 向进程发送信号
- java程序捕获kill信号
- linux中查看java进程,linux中kill java进程