如何在Linux系统中熟练运用KILL命令,纯干货!!!

1.命令格式:

kill[参数][进程号]

2.命令功能:

发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如

果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强

制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的

进程,非root用户只能影响自己的进程。

3.命令参数:

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

-a  当处理当前进程时,不限制命令名和进程号的对应关系

-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号

-s  指定发送信号

-u  指定用户 

注意:

1、kill命令可以带信号号码选项,也可以不带。如果没有信号号码,kill命令就

会发出终止信号(15),这个信号可以被进程捕获,使得进程在退出之前可以清理

并释放资源。也可以用kill向进程发送特定的信号。例如:

kill -2 123

它的效果等同于在前台运行PID为123的进程时按下Ctrl+C键。但是,普通用户只

能使用不带signal参数的kill命令或最多使用-9信号。

2、kill可以带有进程ID号作为参数。当用kill向这些进程发送信号时,必须是这

些进程的主人。如果试图撤销一个没有权限撤销的进程或撤销一个不存在的进程

,就会得到一个错误信息。

3、可以向多个进程发信号或终止它们。

4、当kill成功地发送了信号后,shell会在屏幕上显示出进程的终止信息。有时

这个信息不会马上显示,只有当按下Enter键使shell的命令提示符再次出现时,

才会显示出来。

5、应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端

无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才用kill信号

(9),因为进程不能首先捕获它。要撤销所有的后台作业,可以输入kill 0。因为

有些在后台运行的命令会启动多个进程,跟踪并找到所有要杀掉的进程的PID是件

很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的

方法。

4.使用实例:

实例1:列出所有信号名称

命令:

kill -l

输出:

[[email protected] test]# 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

说明:

只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。

下面是常用的信号:

HUP    1    终端断线

INT     2    中断(同 Ctrl + C)

QUIT    3    退出(同 Ctrl + \)

TERM   15    终止

KILL    9    强制终止

CONT   18    继续(与STOP相反, fg/bg命令)

STOP    19    暂停(同 Ctrl + Z)

实例2:得到指定信号的数值

命令:
kill -1

输出:

[[email protected] test]# kill -l KILL

9[[email protected] test]# kill -l SIGKILL

9[[email protected] test]# kill -l TERM

15[[email protected] test]# kill -l SIGTERM

实例3:先用ps查找进程,然后用kill杀掉

命令:

kill 3268

输出:

[[email protected] test]# ps -ef|grep vim 

root      3268  2884  0 16:21 pts/1    00:00:00 vim install.log

root      3370  2822  0 16:21 pts/0    00:00:00 grep vim

[[email protected] test]# kill 3268 

[[email protected] test]# kill 3268 

-bash: kill: (3268) - 没有那个进程

实例4:彻底杀死进程

命令:

kill –9 3268 

输出:

[[email protected] test]# ps -ef|grep vim 

root      3268  2884  0 16:21 pts/1    00:00:00 vim install.log

root      3370  2822  0 16:21 pts/0    00:00:00 grep vim

[[email protected] test]# kill –9 3268 

[[email protected] test]# kill 3268 

-bash: kill: (3268) - 没有那个进程

实例5:杀死指定用户所有进程

命令:

kill -9 $(ps -ef | grep peidalinux)

kill -u peidalinux

输出:

[[email protected] test]# kill -9 $(ps -ef | grep peidalinux) 

[[email protected] test]# kill -u peidalinux

方法:
过滤出hnlinux用户进程并杀死

实例6:init进程是不可杀的

命令:

kill -9 1

输出:

[[email protected] ~]# ps -ef|grep init

root         1     0  0 Nov02 ?        00:00:00 init [3]            

root     17563 17534  0 17:37 pts/1    00:00:00 grep init

[[email protected] ~]# kill -9 1

[[email protected] ~]# kill -HUP 1

[[email protected] ~]# ps -ef|grep init

root         1     0  0 Nov02 ?        00:00:00 init [3]            

root     17565 17534  0 17:38 pts/1    00:00:00 grep init

[[email protected] ~]# kill -KILL 1

[[email protected] ~]# ps -ef|grep init

root         1     0  0 Nov02 ?        00:00:00 init [3]            

root     17567 17534  0 17:38 pts/1    00:00:00 grep init

说明:

init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内

核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化

所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方

式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 其它

所有进程都是init进程的子进程,init进程是不可杀的!!!

原文地址:http://blog.51cto.com/13687553/2144054

时间: 2024-08-01 15:34:26

如何在Linux系统中熟练运用KILL命令,纯干货!!!的相关文章

Linux 系统中 如何配置自定义命令 (Mac本同样适用)

我相信  熟悉Linux的同学们  都有一个烦恼  就是 如果要查看某一个文件的时候   要一级或者多级的去cd切换目录,哪有木有便捷的方法来随意切换呢?  就像快捷键一样这就是在 Linux 系统中配置自定义命令,很简单?? 在文件/root/.bashrc中,添加以下行: alias mycommand = "cd /root" 在终端直接执行mycommand就会执行cd /root ??:    source ~/.bash_profile  这个命令一定要记得执行,这一行命令

linux系统中useradd和usermod命令参数讲解

useradd 命令,添加用户: 参数描述  -c comment 给新用户添加备注 -d home_dir 为主目录指定一个名字(如果不想用登录名作为主目录名的话) -e expire_date 用YYYYY-MM-DD格式指定一个账户过期的日期 -f inactive_days 指定这个帐户密码过期后多少天这个账户被禁用:0表示密码一过期就立即禁用,-1表示禁用这个功能 -g initial_group 指定用户登录组的GID或组名 -G group ... 指定用户除登录组之外所属的一个或

如何在linux系统中设置静态ip地址

在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0   开始编辑,填写ip地址.子网掩码.网关.DNS等.其中“红框内的信息”是必须得有的.   编辑完后,保存退出.   重启网络服务.service network restart或/etc/init.d/network restart   ping网关,ping外网进行测试.都能ping通表示网络正常.   摘要: ---修改ip地址--- 即时生效: # ifconfig eth0 192

如何在linux系统中添加win10引导(centos和win10双系统)

vim /boot/grub2/grub.cfg ####BEGIN /etc/grub.d/30_os-prober menuentry 'Win10' { ##引导菜单显示的名字set root=(hd0,1) ##win10系统在哪个分区chainloader +1} ####END /etc/grub.d/30_os-prober 原文地址:http://blog.51cto.com/13587169/2103737

Linux系统中最危险的命令你试过吗?

Linux 让人操心的命令 1.rm -rf * man rmNAME       rm - remove files or directoriesOPTIONS       Remove (unlink) the FILE(s). -f, --force              ignore nonexistent files, never prompt -r, -R, --recursive              remove directories and their content

Linux系统中的“ls -l”命令

ls -l命令的输出颜色及含义 颜色 代表的文件类型 白色 普通文件 蓝色 目录 绿色 可执行文件 红色 压缩文件 浅蓝色 链接文件 红色闪烁 链接文件有问题 黄色 设备文件 灰色 其他文件 ls -l命令信息 例:drwxr-xr-x 2 samite samite 4096 9月 25 09:19 exp 分别代表:文件的类型(d--目录文件 ---文本文件...) 文件的可执行权限 所属组的权限 其它组的权限 硬链接数或目录子目录数 文件拥有者 文件拥有者组 文件大小(byte) 时间 文

在Linux系统中为PHP5.3安装Zend Guard Loader

从PHP5.3开始如果要支持ZendGuard加密的PHP代码,必须安装Zend Guard Loader,老的zend optimizer将不被支持. 本文介绍如何在Linux系统中为PHP5.3安装Zend Guard Loader支持的过程. 操作系统为CentOS5.5,PHP版本为5.3.8(CentOS5.5中的PHP默认版本较低,如果要升级到PHP最新版,可以使用remi的report源进行升级). 1.Zend Guard Loader官方下载地址: i386版下载地址: htt

Linux系统中用户切换

1. Linux系统中用户切换的命令为su,语法为: su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]] 参数说明 -f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell. -l , –login:加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如HOME.SHELL和USER等)都是以该使用者(USER)为主,并 且工作目录也会改变.如果没有指

Linux 系统中用户切换(su user与 su - user 的区别)

1. Linux系统中用户切换的命令为su,语法为: su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]] 参数说明 -f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell. -l , –login:加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如HOME.SHELL和USER等)都是以该使用者(USER)为主,并 且工作目录也会改变.如果没有指