『学了就忘』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逻辑卷如何进行分区. 提 ...
随机推荐
- [bzoj3123]森林
首先对于询问操作可以使用可持久化线段树来维护,对于连边操作对于两颗树中选取较小的树暴力练到另一个点上,点数可以用并查集然后只修改根的点数即可. 1 #include<bits/stdc++.h& ...
- [cf1491H]Yuezheng Ling and Dynamic Tree
将其按照区间分块(即$[(i-1)K+1,iK]$作为一个块),并定义$f_{x}$表示$x$的祖先中编号最小且与$x$在同一个块内的节点,$f_{x}$可以通过$f_{a_{x}}$转移,即$f_{ ...
- JVM的Xms Xmx PermSize MaxPermSize区别
Eclipse崩溃,错误提示:MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) sp ...
- JavaScript中的多种进制与进制转换
进制介绍 JavaScript 中提供的进制表示方法有四种:十进制.二进制.十六进制.八进制. 对于数值字面量,主要使用不同的前缀来区分: 十进制(Decimal): 取值数字 0-9:不用前缀. 二 ...
- Kubernetes-网络
前言 本篇是Kubernetes第十一篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战,此篇文章概念比较多,后续我会继续出一些网络相关实战以及原理探索篇. Kubernetes系列文章: K ...
- SpringCloud微服务实战——搭建企业级开发框架(二十六):自定义扩展OAuth2实现短信验证码登录
现在手机验证码登录似乎是每个网站必备的功能,OAuth2支持扩展自定义授权模式,前面介绍了如何在系统集成短信通知服务,这里我们进行OAuth2的授权模式自定义扩展,使系统支持短信验证码登录. 1.在g ...
- java 桥接模式实现代码
写在前面 桥接模式:将抽象与实现分离,使它们可以独立变化.它是用组合/聚合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度. 使用场景1:要绘制矩形.圆形.椭圆.正方形,绘制的图形需 ...
- DTOJ 4027:挖煤
挖煤 [问题描述]众所周知, 小C是挖煤好手.今天他带着他的魔法镐子去挖煤 ,他的镐子一开始有$w$点魔力.他的挖煤 路线 上会依次 经过$n$个地点, 地点, 每个 地点是煤矿或者补给站,设小C当前 ...
- Android系统编程入门系列之硬件交互——多媒体麦克风
在多媒体摄像头及相关硬件文章中,对摄像头的使用方式需要区分应用程序的目标版本以使用不同的代码流程,而与之相比,麦克风硬件的使用就简单多了. 麦克风及相关硬件 麦克风硬件在移动设备上作为音频的采集设备, ...
- Kafka 架构深入
Kafka 工作流程及文件存储机制