1、Linux系统中的信号

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

命令如下:

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

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

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

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

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

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

(2)killall命令

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

[root@localhost ~]# killall [选项] [信号] 进程名

选项:
-i:交互式,询问是否要杀死某个进程。
-I:忽略进程名的大小写。

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

示例:

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

(3)pkill命令

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

格式如下:

[root@localhost ~]# pkill [选项] [信号] 进程名

选项:
-t终端号:按照终端号踢出用户。

示例:

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

    令$tot_{i}$为区间$[l,r]$中满足$a_{j}=i$的$j$的个数,将所有非0的$tot_{i}$取出,得到可重集$S$ 显然,有以下贪心:不断取出$S$中最小的两个元素,删除这两个元素并 ...

  2. [cf1479E]School Clubs

    对于当前班级状态$S$,定义一个函数$\varphi(S)$,要求其满足: 令结束状态为$S_{end}$,对于任意$S\ne S_{end}$,若其下一个状态为$S'$,则$E(\varphi(S) ...

  3. [bzoj5416]冒泡排序

    结论:一个序列是好序列当且仅当其不存在长度为3的下降子序列 证明:考虑提示,一个长度为3的下降子序列必然会交换三次, 而这三次带来的收益实际上只有2,因此不合法 同时还可以得到:第i个数,要么是前缀最 ...

  4. [GYCTF2020]Easyphp

    知识点 反序列化pop链 反序列化字符逃逸 解题过程 www.zip 备份文件获取源码 审计代码构造pop链 <?php Class UpdateHelper{ public $id; publ ...

  5. 从零开始,使用Dapr简化微服务

    序言 现有的微服务模式需要再业务代码中集成大量基础设施模块,比如注册中心,服务发现,服务调用链路追踪,请求熔断,重试限流等等,使得系统过于臃肿重量级. Dapr作为新一代微服务模式,使用sidecar ...

  6. Linux检测磁盘空间

    在linux中,文件系统将所有的磁盘都并入一个虚拟目录下,在使用新的存储媒体之前,需要把它放到虚拟目录下,这项工作称为挂载. 1.mount命令 mount会输出当前系统上挂载的设备列表,要在虚拟目录 ...

  7. linux结束进程命令

    在linux中,进程之间通过信号来通信.进程的信号就是预定义好一个消息,进程能识别它并决定忽略还是做出反应. 信号 名称 描述 1 HUP 挂起 2 INT 中断 3 QUIT 结束运行 9 KILL ...

  8. 洛谷 P4088 [USACO18FEB] Slingshot P(线段树+二维数点)

    题目链接 题意:有一个数轴,上面有 \(n\) 个传送门,使用第 \(i\) 个传送门,你可以从 \(x_i\) 走到 \(y_i\),花费的时间为 \(t_i\) 秒.你的速度为 \(1\) 格/秒 ...

  9. 洛谷 P5206 - [WC2019]数树(集合反演+NTT)

    洛谷题面传送门 神仙多项式+组合数学题,不过还是被我自己想出来了( 首先对于两棵树 \(E_1,E_2\) 而言,为它们填上 \(1\sim y\) 使其合法的方案数显然是 \(y\) 的 \(E_1 ...

  10. Codeforces 690A2 - Collective Mindsets (medium)

    Codeforces 题面传送门 & 洛谷题面传送门 一道脑筋急转弯的结论题. 首先我们考虑对于某个特定的金币数 \(m\),有哪些 \(n\) 满足条件.考虑最 naive 的情况,\(m= ...