网站首页 > 技术文章 正文
在Linux中,进程间通信机制有多种,今天我们来介绍下其中一种:信号。
那么信号一般是用来干什么的呢?
一般来说,信号主要用来通知进程异步事件的发生。在最初的时候,信号设计的目的是为了处理错误,同时它们也用来作为最基本的IPC机制,在Linux中可以识别64种不同的信号,这些信号中的大部分都有了预先定义好的意义,其中SIGUSR1和SIGUSR2可以由应用程序来定义。进程可以显式的用kill或者killpg系统函数来向另一个进程或进程组发信号。
当一个信号正在被处理时,所有同样的信号都将暂时搁置,直到这个信号处理完成。
在Linux系统中我们可以用kill -l来显示系统中的信号:
那么进程接收到核心程序所发出的信号后,处置的方式有哪些呢?
1、 忽略这个信号;(进程可以忽略大部分信号,但是有两个时不能忽略的a、SIGSTOP这个信号将中断进程的执行;b、SIGKILL这个信号将强制进程退出。
2、 执行一个处理此信号的函数;
3、 暂停进程的执行;
4、 重新启动刚才被暂停的那个进程;
5、 采用系统默认的操作,大部分信号的默认操作都是终止进程的执行。
有些信号除了会终止进程的执行,还会留下一个称为core的文件,这个过程称为内核转储,这个文件存有进程当时在内存中的内容,通常用于事后查错。
上面我们使用kill -l查看了系统中预定义的信号,那么下面我们来简单介绍一些信号的意义:
猜你喜欢
- 2024-10-01 原来“进程间通信”是这么回事! 什么叫进程间通信
- 2024-10-01 如何轻松掌握linux内核进程间通信方法
- 2024-10-01 Linux进程间通信(四) - 共享内存 linux共享内存休眠
- 2024-10-01 Linux进程间通信之匿名管道 linux配置匿名ftp服务器
- 2024-10-01 linux中的进程间通信-管道 linux进程间通信
- 2024-10-01 Linux讲解 进程间通信 命名管道 徐教头讲解象棋合集
- 2024-10-01 linux下进程通信的几种方式 linux系统下进程间通信
- 2024-10-01 Linux进程间通信——内存共享映射
- 2024-10-01 c/c++ Linux 进程间通信------共享内存
- 2024-10-01 Linux系统编程之进程间通信方式:消息队列
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)