1、Linux系统中的信号

Linux系统中可以识别的信号较多,我们可以使用命令kil1 -1man 7 signal来查询,

命令如下:

  1. [root@localhost ~]# kill -l
  2. 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
  3. 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
  4. 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
  5. 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
  6. 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
  7. 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
  8. 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
  9. 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
  10. 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
  11. 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
  12. 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
  13. 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
  14. 63) SIGRTMAX-1 64) SIGRTMAX

我们介绍一下常用的主要的信号:

信号代号 信号名称 说明
1 SIGHUP 该信号让进程立即关闭,然后重新读取配置文件之后重启。
2 SIGINT 程序终止信号,用于终止前台进程。相当于输出ctrl+c快捷键。
8 SIGFPE 在发生致命的算术运算错误时发出,不仅包括浮点运算错误,还包括溢出及除数为0等其它所有的算术的错误。
9 SIGKILL 用来立即结束程序的运行,本信号不能被阻塞、处理和忽略。一般用于强制终止进程。
14 SIGALRM 时钟定时信号,计算的是实际的时间或时钟时间。alarm函数用该信号。
15 SIGTERM 正常结束进程的信号,kill命令的默认信号。有时如果进程已经发生问题,这个信号是无法正常终止进程的,我们才会尝试SIGKILL信号,也就是信号9。
18 SIGCONT 该信号可以让暂停的进程恢复执行,本信号不能被阻断。
19 SIGSTOP 该信号可以暂停前台进程,相当于输入ctrl+z快捷键。本信号不能被阻断。

提示:这其中最常用的是1和9,请记住。

2、杀掉进程的命令

(1)kill命令

kill命令后边只能跟进程的id号,不能跟进程名称。

  1. [root@localhost ~]# kill [信号] PID

例1:使用-1信号,让进程重启。

  1. # 使用“-1(数字一)”信号,让httpd的主进程重启动。
  2. [root@localhost ~]# kill -1 2345

例2:使用-9信号,让结束一个进程。

  1. # 使用“-9”信号,让xinetd的进程结束运行。
  2. [root@localhost ~]# kill -9 5678

(2)killall命令

killall命令一般用于杀掉一类进程。

  1. [root@localhost ~]# killall [选项] [信号] 进程名
  2. 选项:
  3. -i:交互式,询问是否要杀死某个进程。
  4. -I:忽略进程名的大小写。

注意:killall命令要写进程名,不要写进程id

示例:

  1. # 查询系统有3个sshd进程。1735是sshd服务的进程,5470和5883是我的两个远程连接的进程。
  2. [root@localhost ~]# ps aux | grep "sshd"
  3. root 1735 0.0 0.0 66236 1204 ? Ss 08:42 0:00 /usr/sbin/sshd
  4. root 5470 0.0 0.2 102084 4148 ? Ss 20:41 0:00 sshd: root@pts/2
  5. root 5883 0.0 0.2 102084 4140 ? Ss 22:09 0:00 sshd: root@pts/0
  6. root 6088 0.0 0.0 103332 852 pts/0 S+ 22:28 0:00 grep sshd
  7. # 过滤一下
  8. [root@localhost ~]# ps aux | grep "sshd" | grep -v "grep"
  9. root 1735 0.0 0.0 66236 1204 ? Ss 08:42 0:00 /usr/sbin/sshd
  10. root 5470 0.0 0.2 102084 4148 ? Ss 20:41 0:00 sshd: root@pts/2
  11. root 5883 0.0 0.2 102084 4140 ? Ss 22:09 0:00 sshd: root@pts/0
  12. # 交互式杀死sshd进程
  13. [root@localhost ~]# killall -i sshd
  14. # 这个进程是sshd的服务进程,如果杀死,所有的sshd连接都不能登录。
  15. 杀死sshd1735)?(y/Nn
  16. # 这是我当前登录终端,不能杀死我自己吧!
  17. 杀死sshd5470)?(y/Nn
  18. # 可以把另外一个sshd登录终端踢出。
  19. 杀死sshd5883)?(y/Ny

(3)pkill命令

pkill命令和killall命令非常类似,也是按照进程名来杀死进程。

格式如下:

  1. [root@localhost ~]# pkill [选项] [信号] 进程名
  2. 选项:
  3. -t终端号:按照终端号踢出用户。

示例:

  1. # 查看当前Linux系统中登陆的终端
  2. # 注意WHAT为w的就代表是当前终端,也就是我自己。
  3. [root@localhost ~]# w
  4. 22:16:25 up 13:34, 3 users, load average: 0.00, 0.01, 0.05
  5. USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
  6. root tty1 - 22:16 6.00s 0.04s 0.04s -bash
  7. root pts/0 192.168.134.1 22:09 0.00s 0.17s 0.08s w
  8. root pts/2 192.168.134.1 20:41 56:31 0.19s 0.19s -bash
  9. # 提出终端号为pts/2的用户
  10. # 注意-9一定要放在-t前,否则命令不能执行成功。
  11. [root@localhost ~]# pkill -9 -t pts/2
  12. # 再看当前Linux系统中登陆的终端
  13. [root@localhost ~]# w
  14. 22:18:36 up 13:36, 2 users, load average: 0.00, 0.01, 0.05
  15. USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
  16. root tty1 - 22:16 2:17 0.04s 0.04s -bash
  17. root pts/0 192.168.134.1 22:09 0.00s 0.10s 0.01s w

『学了就忘』Linux系统管理 — 84、Linux中进程的管理的更多相关文章

  1. 『学了就忘』Linux系统管理 — 82、Linux中进程的查看(ps命令)

    目录 1.ps命令介绍 2.ps aux命令示例 3.ps -le命令示例 4.pstree命令 1.ps命令介绍 ps命令是用来静态显示系统中进程的命令. 不过这个命令有些特殊,它部分命令的选项前不 ...

  2. 『学了就忘』Linux系统管理 — 83、Linux中进程的查看(top命令)

    目录 1.top命令介绍 2.top命令示例 3.top命令输出项解释 4.top命令常用的实例 1.top命令介绍 top命令是用来动态显示系统中进程的命令. [root@localhost ~]# ...

  3. 『学了就忘』Linux基础 — 1、UNIX系统介绍

    目录 (一)UNIX系统介绍 1.UNIX系统发展历史 2.UNIX 主要发行版本 (二)GNU计划 1.GNU计划介绍 2.为何Stallman会发起这个GNU计划呢? 3.GNU的通用公共许可证: ...

  4. 『学了就忘』Linux基础 — 11、通过setup工具配置Linux系统IP地址

    目录 1.setup命令介绍 2.使用setup命令配置IP (1)执行setup命令 (2)进入图形化配置界面 (3)选择配置IP还是DNS (4)选择要配置的网卡 (5)进入IP地址配置页面 (6 ...

  5. 『学了就忘』Linux基础 — 16、Linux系统与Windows系统的不同

    目录 1.Linux严格区分大小写 2.Linux一切皆文件 3.Linux不靠扩展名区分文件类型 4.Linux中所有的存储设备都必须在挂载之后才能使用 5.Windows下的程序不能直接在Linu ...

  6. 『学了就忘』Linux启动引导与修复 — 68、Linux系统运行级别

    目录 1.Linux系统运行级别介绍 2.查看运行级别 3.修改当前系统的运行级别 4.系统默认运行级别 5./etc/rc.d/rc.local文件说明 1.Linux系统运行级别介绍 Linux默 ...

  7. 『学了就忘』Linux启动引导与修复 — 70、grub启动引导程序的配置文件说明

    目录 1.grub中分区的表示方法 2.grub的配置文件 3.grub的配置文件内容说明 (1)grub的整体设置 (2)CentOS系统的启动设置 1.grub中分区的表示方法 在说grub启动引 ...

  8. 『学了就忘』Linux文件系统管理 — 57、Linux文件系统介绍

    目录 1.了解硬盘结构(了解即可) (1)硬盘的逻辑结构 (2)硬盘接口 2.Linux文件系统介绍 (1)Linux文件系统的特性 (2)Linux常见文件系统 3.整理一下对文件系统的认识 在了解 ...

  9. 『学了就忘』Linux文件系统管理 — 65、LVM逻辑卷管理介绍

    目录 1.LVM逻辑卷管理的简介 2.LVM逻辑卷管理的原理 3.总结建立LVM分区的步骤 1.LVM逻辑卷管理的简介 LVM是Logical Volume Manager的简称,中文就是逻辑卷管理. ...

  10. 『学了就忘』Linux文件系统管理 — 66、通过图形界面进行LVM分区

    目录 1.选择自定义分区 2.分配boot分区 3.创建LVM物理卷 4.生成卷组 5.创建逻辑卷 6.格式化安装 我们先用新安装Linux系统时的图形化界面,来演示一下LVM逻辑卷如何进行分区. 提 ...

随机推荐

  1. MySQl安装图形界面

    对于mysql的图形界面有很多个:1.MySQL GUI Tools MySQL GUI Tools是一个可视化界面的MySQL数据库管理控制台,提供了四个非常好用的图形化应用程序,方便数据库管理和数 ...

  2. 7.3 自定义镜像-运行nginx与tomcat并结合PV/PVC/NFS以实现动静分离示例

    1.在NFS SERVER上为tomcat.nginx创建相关目录 NFS SERVER的部署配置参考:https://www.cnblogs.com/yanql/p/15410308.html 1. ...

  3. LOJ 3066 - 「ROI 2016 Day2」快递(线段树合并+set 启发式合并)

    LOJ 题面传送门 人傻常数大,需要狠命卡--/wq/wq 画个图可以发现两条路径相交无非以下两种情况(其中红色部分为两路径的重叠部分,粉色.绿色的部分分别表示两条路径): 考虑如何计算它们的贡献,对 ...

  4. CF1073G Yet Another LCP Problem

    题目传送门. 题意简述:给出 \(s\),多次询问给出长度分别为 \(k,l\) 的序列 \(a,b\),求 \(\sum_{i=1}^k\sum_{j=1}^l\mathrm{LCP}(s[a_i: ...

  5. curl实现SFTP上传下载文件

    摘自:https://blog.csdn.net/swj9099/article/details/85292444 #include <stdio.h> #include <stdl ...

  6. GWAS数据分析常见的202个问题?

    生信其实很简单,就是用别人的工具调参就行了.生信也很折腾,哪一步都可能遇到问题,随时让你疯掉(老辩证法了~).但是,你遇到的问题大部分人也都经历过.这时,检索技能就显得很重要了.平时Biostar和S ...

  7. Docker 外部访问容器Pp、数据管理volume、网络network 介绍

    Docker 外部访问容器Pp.数据管理volume.网络network 介绍 外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来 指定端口映射. ...

  8. perl FileHandle 模块使用

    打开多个文件时必备啊 1 use FileHandle; 2 3 my (%index,%fh); 4 # 创建句柄,这里利用gzip 压缩下 5 foreach my $k(keys %index) ...

  9. oracle中的控制语句

    一.条件语句1.流程控制-if else(1)ifif 判断条件 then      ...end if;(2)if-elseif 判断条件 then      ...else      ...end ...

  10. winXP 下安装python3.3.2

    1. 安装python-3.3.2 2. 安装setuptools 下载解压后,进入路径 python setup.py install 3.安装pip 下载解压后,进入路径 python setup ...