『学了就忘』Linux系统管理 — 84、Linux中进程的管理
1、Linux系统中的信号
Linux系统中可以识别的信号较多,我们可以使用命令kil1 -1或man 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中进程的管理的更多相关文章
- 『学了就忘』Linux系统管理 — 82、Linux中进程的查看(ps命令)
目录 1.ps命令介绍 2.ps aux命令示例 3.ps -le命令示例 4.pstree命令 1.ps命令介绍 ps命令是用来静态显示系统中进程的命令. 不过这个命令有些特殊,它部分命令的选项前不 ...
- 『学了就忘』Linux系统管理 — 83、Linux中进程的查看(top命令)
目录 1.top命令介绍 2.top命令示例 3.top命令输出项解释 4.top命令常用的实例 1.top命令介绍 top命令是用来动态显示系统中进程的命令. [root@localhost ~]# ...
- 『学了就忘』Linux基础 — 1、UNIX系统介绍
目录 (一)UNIX系统介绍 1.UNIX系统发展历史 2.UNIX 主要发行版本 (二)GNU计划 1.GNU计划介绍 2.为何Stallman会发起这个GNU计划呢? 3.GNU的通用公共许可证: ...
- 『学了就忘』Linux基础 — 11、通过setup工具配置Linux系统IP地址
目录 1.setup命令介绍 2.使用setup命令配置IP (1)执行setup命令 (2)进入图形化配置界面 (3)选择配置IP还是DNS (4)选择要配置的网卡 (5)进入IP地址配置页面 (6 ...
- 『学了就忘』Linux基础 — 16、Linux系统与Windows系统的不同
目录 1.Linux严格区分大小写 2.Linux一切皆文件 3.Linux不靠扩展名区分文件类型 4.Linux中所有的存储设备都必须在挂载之后才能使用 5.Windows下的程序不能直接在Linu ...
- 『学了就忘』Linux启动引导与修复 — 68、Linux系统运行级别
目录 1.Linux系统运行级别介绍 2.查看运行级别 3.修改当前系统的运行级别 4.系统默认运行级别 5./etc/rc.d/rc.local文件说明 1.Linux系统运行级别介绍 Linux默 ...
- 『学了就忘』Linux启动引导与修复 — 70、grub启动引导程序的配置文件说明
目录 1.grub中分区的表示方法 2.grub的配置文件 3.grub的配置文件内容说明 (1)grub的整体设置 (2)CentOS系统的启动设置 1.grub中分区的表示方法 在说grub启动引 ...
- 『学了就忘』Linux文件系统管理 — 57、Linux文件系统介绍
目录 1.了解硬盘结构(了解即可) (1)硬盘的逻辑结构 (2)硬盘接口 2.Linux文件系统介绍 (1)Linux文件系统的特性 (2)Linux常见文件系统 3.整理一下对文件系统的认识 在了解 ...
- 『学了就忘』Linux文件系统管理 — 65、LVM逻辑卷管理介绍
目录 1.LVM逻辑卷管理的简介 2.LVM逻辑卷管理的原理 3.总结建立LVM分区的步骤 1.LVM逻辑卷管理的简介 LVM是Logical Volume Manager的简称,中文就是逻辑卷管理. ...
- 『学了就忘』Linux文件系统管理 — 66、通过图形界面进行LVM分区
目录 1.选择自定义分区 2.分配boot分区 3.创建LVM物理卷 4.生成卷组 5.创建逻辑卷 6.格式化安装 我们先用新安装Linux系统时的图形化界面,来演示一下LVM逻辑卷如何进行分区. 提 ...
随机推荐
- Go语言核心36讲(Go语言实战与应用八)--学习笔记
30 | 原子操作(下) 我们接着上一篇文章的内容继续聊,上一篇我们提到了,sync/atomic包中的函数可以做的原子操作有:加法(add).比较并交换(compare and swap,简称 CA ...
- int,double与机器字长
机器字长:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度想深入了解. 学好汇编语言对你帮助非常大.汇编语言中的,最基本的数据类型有: (1) byte (2)word (3)double ...
- 如何用LOTO示波器TDR方法测试电线长度?
TDR也就是时域反射(Time-domain reflectometer),它可以通过观察导线中反射回来的电信号波形对导线长度进行测量,或者对传输导线的阻抗特性进行分析评估. 我们经常会碰到的TDR的 ...
- 初识XSS攻击
初识XSS攻击 本文参考于<白帽子讲Web安全>第3章跨站脚本攻击(XSS),该书出版于2014年,因而现在可能存在一些新场景或新技术而未被提及,但本文对学习和了解XSS攻击仍具有重要价值 ...
- UOJ #76 -【UR #6】懒癌(思维题)
UOJ 题面传送门 神仙题. orz czx,czxyyds 首先没有懒癌的狗肯定不会被枪毙,证明显然. 接下来考虑怎样计算一种局面的答案,假设 \(dp_S\) 表示对于有且仅有 \(S\) 中的狗 ...
- Vue 中 $on $once $off $emit 详细分析,以及使用
vue的 $on,$emit,$off,$once Api 中的解释: $on(eventName:string|Array, callback) 监听事件 监听当前实例上的自定义事件.事件可以由 v ...
- python15正则表达式
------------恢复内容开始------------ python实现实现实现实现 import re #将表达式编译,返回一个对象, pattern = re.compile(r" ...
- CentOS6.9 内核升级详解
内核进行的是应用软件和计算机硬件的交互工作在计算机科学中,内核(英语:kernel)又称核心,是一个计算机程序,用来管理软件发出的数据I/O(输入与输出)要求,将这些要求转译为数据处理的指令,交由中央 ...
- Redis集合解决大数据筛选
Redis集合:集合是什么,就是一堆确定的数据放在一起,数学上集合有交集.并集的概念,这个就可以用来做大数据的筛选功能. 以商品为例,假如商品有颜色和分类.价格区间等属性. 给所有统一颜色的商品放一个 ...
- 学习java的第九天
一.今日收获 1.java完全学习手册第二章程序流程控制中的顺序结构与选择结构 2.学习了java中选择的一些语句和关键词 二.今日问题 1.例题验证有错的情况 2.哔哩哔哩教学视频的一些术语不太理解 ...