扫码关注官方订阅号
kill可以发出这样的指令吗?我的主要目的是要能写在bash脚本中
认证0级讲师
在linux中,与进程的控制交互是通过信号来实现的,以下是几种常见的信号量
SIGINT: 当用户按某些终端键时, 引发终端产生的信号. 如Ctrl+C键, 这将产生中断信号(SIGINT). 它将停止一个已失去控制的程序.SIGSEGV: 由硬件异常(除数为0, 无效的内存引用等等)产生的信号. 这些条件通常由硬件检测到, 并将其通知内核. 然后内核为该条件发生时正在运行的进程产生该信号.SIGURG: 在网络连接上传来带外数据时产生.SIGPIPE: 在管道的读进程已终止后, 一个进程写此管道时产生. 当类型为SOCK_STREAM的socket已不再连接时, 进程写到该socket也产生此信号.SIGALRM: 进程所设置的闹钟时钟超时的时候产生.SIGABRT: 进程调用abort函数时产生此信号, 进程异常终止.SIGCHLD: 在一个进程终止或停止时, 它将把该信号发送给其父进程. 按系统默认, 将忽略此信号. 如果父进程希望被告知其子进程的这种状态改变, 则应该捕捉此信号. 通常是用wait系列函数捕捉, 如果不wait的话, 子进程将成为一个僵尸进程.SIGIO: 此信号指示一个异步I/O事件.SIGSYS: 该信号指示一个无效的系统调用.SIGTSTP: 交互式停止信号. Ctrl+Z, 按下时, 终端将产生此信号, 进程被挂起.
你说的control+c实际上是终端把一个SIGINT信号发给了进程,而如果你用kill指令而不带任何参数,实际上是发送了一个SIGKILL信号。但是kill指令是可以发送指定信号的,比如你要发一个SIGINT信号,可以这样
kill -s SIGINT process_name
ctrl+c其实是一个信号,向进程发送中断信号。 关于进程对中断、停止等信号会触发什么动作可以参考《unix环境高级编程》
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
在linux中,与进程的控制交互是通过信号来实现的,以下是几种常见的信号量
你说的control+c实际上是终端把一个SIGINT信号发给了进程,而如果你用kill指令而不带任何参数,实际上是发送了一个SIGKILL信号。但是kill指令是可以发送指定信号的,比如你要发一个SIGINT信号,可以这样
ctrl+c其实是一个信号,向进程发送中断信号。
关于进程对中断、停止等信号会触发什么动作可以参考《unix环境高级编程》