首页 > 系统相关 >Linux kill命令给进程发信号

Linux kill命令给进程发信号

时间:2024-08-07 20:54:45浏览次数:25  
标签:发信号 ANSI POSIX 信号 Linux 进程 kill 终止

Linux系统中进程之间可以通过信号进行通信。kill命令可以通过进程ID(即PID)给进程发信号,格式示例如下。当直接使用“kill <pid>”命令时,默认发送SIGTERM信号。

kill -<signal> <pid>

进程信号如下:

信号名称

描述

SIGHUP    

1  

Hangup (POSIX)                  

挂起

SIGINT    

2  

Interrupt (ANSI)                

中断;e.g.终端键入DELETE或ctrl+c按键

SIGQUIT   

3  

Quit (POSIX)                    

结束运行;e.g.终端键入ctrl+\按键

SIGILL    

4  

Illegal instruction (ANSI)      

非法指令

SIGTRAP   

5  

Trace trap (POSIX)              

Trace追踪

SIGABRT   

6  

Abort (ANSI)                    

abort()异常终止

SIGBUS    

7  

BUS error (4.2 BSD)             

硬件故障

SIGFPE    

8  

Floating-point exception (ANSI) 

浮点异常

SIGKILL   

9  

Kill, unblockable (POSIX)       

无条件终止

SIGUSR1   

10 

User-defined signal 1 (POSIX)   

用户定义信号1

SIGSEGV   

11 

Segmentation violation (ANSI)   

段错误

SIGUSR2   

12 

User-defined signal 2 (POSIX)   

用户定义信号2

SIGPIPE   

13 

Broken pipe (POSIX)             

管道破裂

SIGALRM   

14 

Alarm clock (POSIX)             

超过alarm()设置的时间

SIGTERM   

15 

Termination (ANSI)              

尽可能终止

SIGSTKFLT 

16 

Stack fault                     

栈异常,默认终止进程

SIGCHLD   

17 

Child status has changed (POSIX)

子进程状态改变

SIGCONT   

18 

Continue (POSIX)                

使暂停进程继续运行

SIGSTOP   

19 

Stop, unblockable (POSIX)       

无条件停止运行,但不终止

SIGTSTP   

20 

Keyboard stop (POSIX)           

停止或暂停,但继续在后台运行;e.g.ctrl+z

来看看kill命令的使用示例,如下图,“./simple_test &”后台运行程序,ps l命令可以看到该程序的PID=5482,“kill 5482”给该进程发送SIGTERM信号尽可能终止,程序被终止成功。

下面示例是./执行程序后键入ctrl+z按键,使程序暂停但继续在后台运行。此时发送SIGTERM信号尽可能终止该进程失败,发送SIGKILL信号无条件终止进程成功。从中也可以看出两个信号的区别。

备注:图中"kill -SIGKILL 5517"等同于"kill -9 5517",前者对读者更友好一点。

使用kill命令需要注意权限问题。上面两个例子,bash所属用户与程序进程所属用户相同,所以可以直接发送信号。例如下图,普通用户给root用户PID=1的进程发送信号失败,提示"Operation not permitted"不允许操作。当然,最简单直接的就是切换为root用户,你想kill哪个进程就kill哪个进程。

标签:发信号,ANSI,POSIX,信号,Linux,进程,kill,终止
From: https://blog.csdn.net/starlight_0/article/details/140904346

相关文章

  • 查看Linux某进程的物理内存大小
    如题,步骤如下1)ps命令查看某进程的PID2)通过/proc文件系统查看方法一查看/proc/[pid]/statm内存使用情况,以页为单位,每页4KB。每列含义分别为:虚拟内存、物理内存、共享内存、 文本、库、数据、脏页。$cat/proc/3092/statm1296470432201310上述结果表示PID=3092的......
  • linux内核裁剪 以及内核裁剪举例
    1.Linux内核裁剪介绍Linux内核裁剪是一个优化Linux系统性能和资源使用的过程,通过移除不必要的功能和驱动程序来减小内核大小。这对于嵌入式系统、特定用途的服务器或者想要提高系统性能的用户来说特别有用。以下是关于Linux内核裁剪的详细信息:1.裁剪的目的:  -减小内核......
  • 7 - Linux磁盘阵列RAID
    一、RAID磁盘阵列介绍RAID(RedundantArryofIndependent),中文简称为独立冗余磁盘阵列。把多块独立的物理硬盘按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的储存性能和提供数据备份技术。组成磁盘阵列的不同方式称为RAID级别(RAIDLevels)。常用的RAID......
  • Linux文件系统的一些基本概念
    Linux文件系统简介在Linux操作系统中,一切被操作系统管理的资源,如磁盘驱动器、打印机、普通文件或目录等,都被视为文件进行管理和访问。在Linux系统中,“一切都是文件”。Linux系统可以通过统一的文件接口来管理和操作不同类型的资源。Linux可以使用类似于读写文件的方......
  • springboot的jar在linux上sh启动脚本
     java在linux上start、stop、restart、status等启动命令,sh脚本,appMgr.sh放在reources/ops下#!/usr/bin/shAPP_NAME="@project.name@[email protected]@.jar"DEPLOY_PATH=`pwd`#JVM启动参数1JVM_PARAMS="-Dfastjson.parser.safeMode=true"command=$1#nohup......
  • Linux 环境下为VirtualBox安装增强功能
    csdn搬家VirtualBox安装CentOS后,再安装增强功能就可以共享文件夹、粘贴板以及鼠标无缝移动,主要步骤如下:1、yum-yupdate2、yum-yinstallg++gccgcc-c++makekernel-*#主要是在安装增强工具提示没有安装这些软件3、yum-yinstallbzip2*......
  • linux查看防火墙状态
    原文:https://www.zhihu.com/tardis/zm/art/447288815?source_id=1005inux查看防火墙状态的方法:一、iptables防火墙1、基本操作#查看防火墙状态serviceiptablesstatus#停止防火墙serviceiptablesstop#启动防火墙serviceiptablesstart#重启防火墙servic......
  • Linux系统安装ComfyUI
    环境:Ubuntu22.04.1LTS+  NVIDIAGeForceRTX3090一、安装显卡驱动 访问NVIDIA官方网站(https://developer.nvidia.com/cuda-downloads)获取对应安装命令https://developer.nvidia.com/cuda-downloads安装完成后执行nvidia-smi检测安装是否成功二、安装Miniconda......
  • 音频应用编程-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板
    音频应用编程Linux下ALSA框架概述ALSA简介:ALSA是AdvancedLinuxSoundArchitecture(高级的Linux声音体系)的缩写地位与功能:现已成为Linux下的主流音频体系架构,提供音频和MIDI支持,替代了旧版本中的OSS(开放声音系统)框架设计:ALSA是Linux系统下标准且先进的......
  • RockyLinux安装Docker
    更新系统sudodnfupdate安装 Docker 所需的软件包和依赖项sudodnfinstall-yyum-utilsdevice-mapper-persistent-datalvm2添加Docker官方的YUM仓库#官方sudoyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo#阿......