Linux终止/休眠进程 您所在的位置:网站首页 linux怎样关闭进程 Linux终止/休眠进程

Linux终止/休眠进程

#Linux终止/休眠进程| 来源: 网络整理| 查看: 265

文章目录 终止/休眠进程使用kill命令终止进程kill语法说明 kill实例根据PID终止指定进程强制杀死进程彻底杀死进程显示信号发送SIGHUP信号,可以使用一下信号得到指定信号的数值终止当前shell启动的进程杀死指定用户所有进程 使用killall命令根据进程名称终止进程向进程发送指定信号 使用sleep命令暂停进程sleep实例休眠5分钟显示目前时间后延迟 1 分钟,之后再次显示时间 使用pkill踢掉用户语法常用信号 pkill实例根据进程名终止进程踢掉正在登陆的用户

终止/休眠进程

在Linux中可以使用Ctrl+C组合键终止前台进程,可以根据PID使用kill来终止单个进程,也可以根据进程名使用killall命令来终止多个进程,也可以使用pkill踢掉用户 区别

kill根据PID终止单个进程killall根据进程名终止一类进程pkill踢出某个终端

##使用Ctrl+C终止前台进程 通常终止一个前台进程可以使用Ctrl+C组合键

使用kill命令终止进程

kill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID,而不能识别进程名 Ctrl+C组合键只能终止前台进程,要想终止一个后台进程,需要使用kill命令 Kill命令可以将指定的信号送至程序。默认情况下,kill会发送TERM(15)信号,可将指定程序终止。若仍无法终止该进程,可使用KILL(9)信号尝试强制删除程序

init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init  始终是第一个进程(其进程编号始终为1)。 其它所有进程都是init进程的子孙。init进程是不可杀的!

kill语法

功能说明:终止后台进程 语法

kill [-s ][程序] kill [-l ]

选项及参数

-l :若不加选项,则-l参数会列出全部的信号名称。-s :指定要送出的信号。既可以是信号名称,也可以是对应型号的号码[程序]:[程序]可以是程序的PID或是PGID,也可以是工作编号

####常用信号

信号编号信号名含义0EXIT程序退出时收到该信息。1HUP挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。2INT表示结束进程,但并不是强制性的,常用的 “Ctrl+C” 组合键发出就是一个 kill -2 的信号。3QUIT退出。9KILL杀死进程,即强制结束进程。11SEGV段错误。15TERM正常结束进程,是 kill 命令的默认信号。

需要注意的是,表中省略了各个信号名称的前缀 SIG,也就是说,SIGTERM 和 TERM 这两种写法都对,kill 命令都可以理解。

说明 kill命令可以带信号号码选项,也可以不带。如果没有信号号码,kill命令就会发出终止信号(15),这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源。也可以用kill向进程发送特定的信号。例如:kill -2 123#它的效果等同于在前台运行PID为123的进程时按下Ctrl+C键。但是,普通用户只能使用不带signal参数的kill命令或最多使用-9信号。kill可以带有进程ID号作为参数。当用kill向这些进程发送信号时,必须是这些进程的主人。如果试图撤销一个没有权限撤销的进程或撤销一个不存在的进程,就会得到一个错误信息。可以向多个进程发信号或终止它们。当kill成功地发送了信号后,shell会在屏幕上显示出进程的终止信息。有时这个信息不会马上显示,只有当按下Enter键使shell的命令提示符再次出现时,才会显示出来。应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为进程不能首先捕获它。要撤销所有的后台作业,可以输入kill 0。因为有些在后台运行的命令会启  动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的方法 kill实例 根据PID终止指定进程 [root@localhost ~]# kill 1616 强制杀死进程 [root@localhost ~]# kill -KILL 1616 彻底杀死进程

-9 强制杀掉进程

[root@localhost ~]# kill -9 1616 显示信号 [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

说明: 只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 下面是常用的信号:

HUP1终端断线INT2中断(同 Ctrl + C)QUIT3退出(同 Ctrl + \)TERM15终止KILL9强制终止CONT18继续(与STOP相反, fg/bg命令)STOP19暂停(同 Ctrl + Z) 发送SIGHUP信号,可以使用一下信号 [root@localhost ~]# kill -HUP pid 得到指定信号的数值 [root@localhost ~]# kill -l KILL 9 [root@localhost ~]# kill -l TERM 15 [root@localhost ~]# kill -l SIGTERM 15 终止当前shell启动的进程

可以使用kill 0命令终止当前shell启动的所有进程

[root@localhost ~]# kill 0 杀死指定用户所有进程

方法一:过滤出user用户进程

[root@localhost ~]# kill -9 $(ps -ef | grep user)

方式二:使用-u参数

[root@localhost ~]# kill -u user 使用killall命令根据进程名称终止进程

Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令

###killall语法 功能说明: 语法

killall[参数][进程名]

选项及参数说明

-Z 只杀死拥有scontext 的进程-e 要求匹配进程名称-I 忽略小写-g 杀死进程组而不是进程-i 交互模式,杀死进程前先询问用户-l 列出所有的已知信号名称-q 不输出警告信息-s 发送指定的信号-v 报告信号是否成功发送-w 等待进程死亡--help 显示帮助信息--version 显示版本显示

####常用信号

信号编号信号名含义0EXIT程序退出时收到该信息。1HUP挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。2INT表示结束进程,但并不是强制性的,常用的 “Ctrl+C” 组合键发出就是一个 kill -2 的信号。3QUIT退出。9KILL杀死进程,即强制结束进程。11SEGV段错误。15TERM正常结束进程,是 kill 命令的默认信号。

###killall实例 ####杀死所有同名进程

[root@localhost ~]# killall nginx [root@localhost ~]# killall -9 bash 向进程发送指定信号 [root@localhost ~]# killall -TERM ngixn [root@localhost ~]# killall -KILL nginx 使用sleep命令暂停进程

sleep命令的功能是让进程暂停执行一段时间 此命令大多用于Shell程序设计中,使两条命令执行之间停顿指定的时间 ###sleep语法 功能说明 语法

选项及参数

--help : 显示辅助讯息--version : 显示版本编号number : 时间长度,后面可接 s、m、h 或 d。其中 s 为秒,m 为 分钟,h 为小时,d 为日数 sleep实例 休眠5分钟 [root@localhost ~]# sleep 5m 显示目前时间后延迟 1 分钟,之后再次显示时间 [root@localhost ~]# date;sleep 1m;date 使用pkill踢掉用户

pkill 和killall 应用方法差不多,也是直接杀死运行中的程式;如果你想杀掉单个进程,请用kill 来杀掉。但pkill常用来踢掉正在登陆的用户

语法

功能说明:终止进程 语法 常用选项及参数

--help:显示帮助文档--version:显示命令版本-f:查找完成的文件名-g pgrp:只匹配列出的进程组ID中的进程。进程组0被转换为pgrep或pkill自己的进程组。-G gid:只匹配实际组ID列出的进程。可以使用数值或符号值。-n:选择最近执行的进程-o:选择最早的进程-P ppid:选择父pid匹配的进程-s sid:只匹配进程会话ID列出的进程。会话ID 0被转换为pgrep或pkill自己的会话ID。-t term:查找符合终端号的进程-u euid:只匹配其有效用户ID列出的进程。-U uid:只匹配实际用户ID列出的进程。可以使用数值或符号值。-v:查找不符合条件的进程-x:只匹配其名称(如果-f指定了命令行)与模式完全匹配的进程。-signal:要发送的信号 常用信号 信号编号信号名含义0EXIT程序退出时收到该信息。1HUP挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。2INT表示结束进程,但并不是强制性的,常用的 “Ctrl+C” 组合键发出就是一个 kill -2 的信号。3QUIT退出。9KILL杀死进程,即强制结束进程。11SEGV段错误。15TERM正常结束进程,是 kill 命令的默认信号。 pkill实例 根据进程名终止进程

pkill 和killall 应用方法差不多,也是直接杀死运行中的程式;如果你想杀掉单个进程,请用kill 来杀掉

[root@localhost ~]# pkill nginx 踢掉正在登陆的用户

pkill经常用来踢掉正在登陆的用户

[root@localhost ~]# pkill -kill -t pts/2


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有