『学了就忘』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逻辑卷如何进行分区. 提 ...
随机推荐
- WPF嵌入Unity3D之后,unity3D程序的键盘和鼠标事件无法触发(3D程序的焦点无法激活)的解决方案
目前最通用的客户端调用3D的方式,就是WPF程序通过Process启动Unity3D的exe进程,直接上代码: //开启3D进程 internal void Create3DProcess(strin ...
- SQL语句修改字段类型与第一次SQLServer试验解答
SQL语句修改字段类型 mysql中 alert table name modify column name type; 例子:修改user表中的name属性类型为varchar(50) alert ...
- C#疑问
在Microsoft.NET里面int=Int32Int64=long但是在其他.NET环境下面可能不是这样的.C#是一门计算机编程语言,是经过标准化,也就是说其他的人也可以根据它的语法去实现它的编译 ...
- volatile不能保证数据完整性的小案例
package juc; import java.util.Collections; import java.util.HashSet; import java.util.Set; public cl ...
- Codeforces 587F - Duff is Mad(根号分治+AC 自动机+树状数组)
题面传送门 第一眼看成了 CF547E-- 话说 CF587F 和 CF547E 出题人一样欸--还有另一道 AC 自动机的题 CF696D 也是这位名叫 PrinceOfPersia 的出题人出的- ...
- char *p、char p[]、字符串的几个题目
总结一下遇到的关于char *p.char p[]和字符串的题目: 例一:(指针的指针) 1 void getmemory(char **p) 2 { 3 p = (char *)malloc(100 ...
- vim ——批量注释
1111. ctrl+v进入列编辑模式,在编辑模式中,在行间上下移动光标,选择需要编辑哪些行的对应的列,之后使用I(大写)进入列插入.插入注释符,按两次Esc退出列编辑模式即可实现多行注释 删除注释: ...
- android Fragment跳转Fragment
android Fragment跳转Fragment,最新的android studio3 在系统模板建立的BottomNavigationView 中跳转方式 此版本下不能用FragmentMana ...
- chmod文件权限分配问题
一. 文件(文件夹)的权限问题 一个文件或者文件夹,使用它的人有三类:root.当前用户和其他用户,例如,我们可以通过 ls -l xxx.xxx 来查看文件 "xxx.xxx" ...
- 完全用Deepin Linux娱乐、工作、学习(1)
截至今天我已经用全Deepin Desktop Linux环境娱乐.工作.学习了100多天.当你看到这个桌面的时候,会不会觉得它是MacOS?错了,它是Deepin Desktop Linux,而且它 ...