linux中断某进程命令的简单介绍

linux中怎么终止正在运行的进程Linux中终止一个正在运行运行的进程最常用的是kill命令,它是用进程PID作为参数来杀死进程 。那如何获得指定进程的PID呢?用pidof命令啊 。比如获取syslogd进程PID的命令是:pidof syslogd 。知道了进程PID , 就可以用kill命令终止它了:
kill -9 PID号码
或者kill -2 PID号码
-9参数是强制结束进程,而-2参数是相当于用键盘组合键Ctrl+C的方式正常结束进程,两种方式可以根据进程的运行情况来用 。
终止进程还可以选择killall命令,顾名思义就是杀死所有以某个命令启动的所有进程(以杀死httpd命令启动的所有进程为例):
killall -9 httpd
linux停止进程在linux系统中停止进程需要以下三个步骤,下面具体介绍以下:
1、打开进程id,用ps命令查找进程,使用-e 选项 。通过less的方式输出
2、找到进程,通过grep将ps的输出通过管道传输,并指定该进程的名称 。
3、找到要终止的进程,然后通过kill命令来停止进程 。
今天的分享就是这些 , 希望能帮助大家 。
本文章基于thinkpadE15品牌、centos7系统撰写的 。
Linux里面杀掉进程命令是什么?方法一: Terminal终端输入: gnome-system-monitor,就可以打开system monitor
如图:
然后找到相应进程,右击选择kill process就可以了
方法二: 通过kill 进程id的方式可以实现,
首先需要知道进程id, 例如,想要杀死firefox的进程,通过 ps -ef|grep firefox,可以查到firefox的进程id:
然后通过 kill 3781 就可以关闭进程了.
补充: 1. kill -9 来强制终止退出, 例如: kill -9 3781
2.特殊用法:
kill -STOP [pid]
发送SIGSTOP (17,19,23)停止一个进程 , 而并不消灭这个进程 。
kill -CONT [pid]
发送SIGCONT (19,18,25)重新开始一个停止的进程 。
kill -KILL [pid]
发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作 。
kill -9 -1
终止你拥有的全部进程 。
方法三: killall 通过程序的名字,来杀死进程
例如: killall firefox
注意: 该命令可以使用 -9 参数来强制杀死进程, killall -9 firefox
方法四: pkill 通过程序的名字, 直接杀死所有进程
例如: pkill firefox
方法五: 通过xkill 可以杀死图形程序应用, 例如firefox崩溃无响应,可以使用该命令.
例如: 用法xkill , 会出现一个白色的x, 然后用鼠标单击想要杀死的应用,如图
以下内容引用自:
◆编者注:
KILLALL(Section: User (1)/Updated: 1999年9月7日)
———————————————–
NAME (名称)
killall – 以名字方式来杀死进程
SYNOPSIS (总览)
killall [-egiqvw] [-signal] name …
killall -l
killall -V
DESCRIPTION (描述)
killall 发送一条信号给所有运行任意指定命令的进程. 如果没有指定信号名, 则发送SIGTERM. 。
信号可以以名字 (如 -HUP ) 或者数字 (如 -1 ) 的方式指定. 信号 0 (检查进程是否存在)只能以数字方式指定 。
如果命令名包括斜杠 (/), 那么执行该特定文件的进程将被杀掉, 这与进程名无关 。
如果对于所列命令无进程可杀, 那么 killall 会返回非零值. 如果对于每条命令至少杀死了一个进程, killall 返回 0 。Killall 进程决不会杀死自己 (但是可以杀死其它 killall 进程) 。
OPTIONS (选项)
-e
对 于很长的名字, 要求准确匹配. 如果一个命令名长于 15 个字符, 则可能不能用整个名字 (溢出了). 在这种情况下, killall 会杀死所有匹配名字前 15 个字符的所有进程. 有了 -e 选项,这样的记录将忽略. 如果同时指定了 -v 选项, killall 会针对每个忽略的记录打印一条消息 。
-g
杀死属于该进程组的进程. kill 信号给每个组只发送一次, 即使同一进程组中包含多个进程 。
-i
交互方式,在杀死进程之前征求确认信息 。
-l
列出所有已知的信号名 。
-q
如果没有进程杀死, 不会提出抱怨 。
-v
报告信号是否成功发送 。
-V
显示版本信息 。
-w
等待所有杀的进程死去. killall 会每秒检查一次是否任何被杀的进程仍然存在, 仅当都死光后才返回. 注意: 如果信号被忽略或没有起作用, 或者进程停留在僵尸状态, killall 可能会永久等待 。
FILES(相关文件)
/proc proc文件系统的存在位置 。
KNOWN bugS (已知 BUGS)
以文件方式杀死只对那些在执行时一直打开的可执行文件起作用, 也即, 混杂的可执行文件不能够通过这种方式杀死 。
要警告的是输入 killall name 可能不会在非 Linux 系统上产生预期的效果, 特别是特权用户执行时要小心 。
在两次扫描的间隙, 如果进程消失了而被代之以一个有同样 PID 的新进程, killall -w 侦测不到 。
来源:
下面来了解相关命令:
一、查看进程的命令 有ps、pstree、pgrep等:
1、ps
显示进程信息 , 参数可省略
-aux以BSD风格显示进程 常用
-efH以System V风格显示进程
-e , -A 显示所有进程
a显示终端上所有用户的进程
x显示无终端进程
u显示详细信息
f树状显示
w完整显示信息
l显示长列表
在终端中执行ps aux,
各列输出字段的含义:
USER进程所有者
PID进程ID
PPID父进程
%CPUCPU占用率
%MEM内存占用率
NI进程优先级 。数值越大,占用CPU时间越少
VSZ进程虚拟大小
RSS页面文件占用
TTY终端ID
STAT进程状态
+---D不可中断Uninterruptible sleep (usually IO)
+---R正在运行,或在队列中的进程
+---S处于休眠状态
+---T停止或被追踪
+---Z僵尸进程
+---W进入内存交换(从内核2.6开始无效)
+---X死掉的进程
+---高优先级
+---N低优先级
+---L有些页被锁进内存
+---s包含子进程
+---+位于后台的进程组;
+---l多线程,克隆线程 multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
PID:进程标识符,系统为每一个进程分配一个识别码,称为PID 。
ps命令极为常用,其他命令还有:
2.pstree
树状显示进程信息
-a 显示完整命令及参数
-c 重复进程分别显示
-c 显示进程ID PID
-n 按 PID 排列进程
3.pgrep 进程名
显示进程的PID
-l 显示进程名和进程PID
-o 进程起始ID
-n 进程终止ID
二、结束进程的命令 有kill、pkill、killall、xkill等:
kill [信号代码] 进程PID
根据PID向进程发送信号,常用来结束进程,默认信号为 -9
信号代码,可取值如下:
-l [信号数字] 显示、翻译信号代码
-9 , -KILL 发送 kill 信号退出
-6 , -ABRT 发送 abort 信号退出
-15 , -TERM 发送 Termination 信号
-1 , -HUP 挂起
-2 , -INT 从键盘中断,相当于 Ctrl+c
-3 , -QUIT 从键盘退出,相当于 Ctrl+d
-4 , -ILL 非法指令
-11 , -SEGV 内存错误
-13 , -PIPE 破坏管道
-14 , -ALRM
-STOP 停止进程,但不结束
-CONT 继续运行已停止的进程
-9 -1 结束当前用户的所有进程
pkill 进程名
结束进程族 。如果结束单个进程 , 请用 kill
killall 进程名
killall和pkill 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程 , 请用kill 来杀掉 。
xkill
在图形界面中点杀进程 。
当xkill运行时鼠标指针变为骷髅图案,哪个图形程序崩溃一点就OK了 。如果您想终止xkill ,就按右键取消 。
比如当firefox 出现崩溃不能退出时,点鼠标就能杀死firefox。
xkill 调用方法:
[root@localhost ~]# xkill
来源:
linux中pkill的简单用法
pkill 和killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉 。
必要参数
-f 显示完整程序
-l 显示源代码
-n 显示新程序
-o 显示旧程序
-v 与条件不符合的程序
-x 与条件符合的程序
选择参数
-p进程号 列出父进程为用户指定进程的进程信息
-t终端 指定终端下的所有程序
-u用户 指定用户的程序
应用方法:
#pkill 正在运行的程序名
举例:
Java代码
[root@localhost beinan]# pgrep -l gaim
2979 gaim
[root@localhost beinan]# pkill gaim
也就是说:
kill 对应的是 PID
pkill 对应的是COMMAND
例如在Ubuntu中强制结束一个已成僵尸的名称为:firefox,PID为:1603的进程 , 可以如下操作:
方法一:
(1)ctrl+alt+t,调出终端 , 输入 top,然后就可以看到现在系统的进程,是按占用资源从多到少排列的 。
找到要关掉的进程,记下该进程第一列的数字编号(假设是xx),然后输入q , 退回终端 。
(2)输入:sudo kill xx(对应刚才的编号) 。
方法二:
ctrl+alt+t , 调出终端 , 输入:sudo pkill firefox
范例1: 杀死指定进程
Java代码
root@snail-hnlinux:~# ps -A //显示所有进程
PID TTYTIME CMD
1 ?00:00:03 init
2 ?00:00:00 kthreadd
3 ?00:00:00 migration/0
4 ?00:00:00 ksoftirqd/0
5 ?00:00:00 watchdog/0
……忽略部分
28382 ?00:00:00 gvfsd-http
28391 ?00:07:07 software-center
30467 ?00:00:31 designer-qt4
30487 ?00:00:06 gnome-terminal
30488 ?00:00:00 gnome-pty-helpe
30489 pts/0 00:00:00 bash
30670 ?00:00:00 debconf-communi
30749 pts/0 00:00:17 gedit
31155 ?00:00:00 dhclient
31325 ?00:00:01 sshd
31327 ?00:00:00 sshd
31400 pts/1 00:00:00 bash
31485 pts/2 00:00:00 bash
31653 ?00:00:00 aptd
31658 pts/1 00:00:00 ps
root@snail-hnlinux:~# pidof sshd //查看与sshd相关进程
31327 31325 2095
root@snail-hnlinux:~# pkill -9 sshd //杀死指定进程
范例2:杀死同义终端下的进程
Java代码
root@snail-hnlinux:~# pkill -t tty1 //杀死终端1下的所有进程
范例3: 杀死指定用户进程
Java代码
root@snail-hnlinux:~# pkill -u hnlinux
范例4:反向选择
Java代码
root@snail-hnlinux:~# pkill -vu hnlinux //杀死不属于hnlinux用户的所有进程
————————————————
版权声明:本文为CSDN博主「MrCoderr」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明 。
原文链接:
4-5 Linux 中断进程 --- kill (kill -2 实验)1、信号:传递给 Liunx 的事件发生通知机制 。
2、kill -l:显示所有信号 。一共有62个信号(没有32、33) 。
3、常用的信号有:
kill -2 PID —— 正常中断进程(Ctrl + C 一样) 。程序在结束之前,能够保存相关数据,然后再退出 。
kill -9 PID —— 强制杀死一个进程 。
kill -15 PID —— 正常方式终止一个程序 。中断进程时应首先用 -15,以便于其能够预先清理临时文件和释放资源 。-9 作为最后手段 , 应对那些失控的进程 。
--------------------------------------------------------------------------------
1)、kill -2 中断后台运行的进程 。
红色下划线:sleep 10000—— 后台运行延时 10000 秒的命令,进程 ID 为1516 。
ps -j —— 以作业格式列出进程信息,可以看到 1516 sleep 命令的进程 。
(PID:进程 ID、PGID:线程组 ID、SID:会话 ID、TTY:进程运行的终端,标识那个终端控制 。(pts远程终端、tty系统终端)、TIME:进程运行的时间 和 CMD:命令的名称和参数) 。
jobs -l —— 列出后台运行的命令,可以看到 1516 sleep 命令正在后台运行 。
黄色下划线:kill -2 1516 —— 中断1516 进程 。执行成功后,按 Enter 回车系统会给出提示Interrupt 提示(中断进程) 。
蓝色方框:ps -j 已查询不到 1516 sleep 的进程 。jobs -l 也没有后台运行的命令 。
【linux中断某进程命令的简单介绍】 2)、kill -2 配合 fg 查看中断挂起的进程 。
红色下划线:前台执行 sleep 10000 (延时10000秒)后 ctrl + z 挂起 。
黄色下划线:ps -j 查看进程,可以看到 1344 sleep 进程 。jobs -l 查看后台进程 1344 的状态是stopped 暂停状态 。
蓝色下划线:kill -2 1344 中断 1344 进程 。
绿色下划线:ps -j 查看进程,仍有 1344 sleep 进程 。jobs -l 查看后台进程 1344 的状态是stopped 暂停状态 。
暂时这样看 , 好像 kill -2 并没有起到中断进程的作用 。
然而,用 fg 把后台的命令调至前台运行时可以发现 1344 sleep 已经被中断 。
红色下划线:fg 把已经执行了 kill -2 ,  状态为 stopped 的1344 sleep命令调至前台执行 。系统也反馈已经调至前台执行 。(此时,实际上已经执行了 kill -2 中断了进程)
黄色方框:ps -j 已经没有了 1344 sleep 的进程 。
蓝色方框:jobs -l 后台也没有指令 。
3)、kill -2 配合 bg 查看中断挂起的进程 。
通过上面的思路,kill -2 配合 bg 实验看看效果 。同样的首先挂起一个命令,状态为 stopped 暂停 。然后用 bg 命令恢复执行 。
前面的步骤都是一样,挂起一个命令 。通过 ps 和 jobs 查看进程和后台确认有 1379 的进程,状态为 stopped 暂停 。然后执行 kill-2 中断进程,再次通过ps 和 jobs 查看进程和后台命令 。确认状态为 stopped1379 的进程仍然存在 。
此时 , 用 bg 恢复运行挂起的命令,系统提示 sleep 命令已恢复在后台运行 。然而通过 ps -j 查看进程会发现 sleep 已经被中断 。jobs -l 查看后台也没有了运行的 sleep 命令了 。
从实验上看:
1、后台命令运行时(Running),执行 kill -2 可以中断进程 。
2、挂起命令,处于暂停状态时(Stopped),执行 kill -2 后通过 ps 还可以查询到进程,jobs还可以查询到后台命令,状态仍然是 Stopped 暂停状态 。实际上,用 fg 把暂停的后台进程调至前台运行时,系统反馈 sleep 命令调至前台运行 。而再用 ps 查询不到进程,已经中断了进程 。用 jobs 已经查询不到后台命令 。
3、挂起命令,处于暂停状态时(Stopped),执行 kill -2 后通过 ps 还可以查询到进程,jobs还可以查询到后台命令,状态仍然是 Stopped 暂停状态 。用 bg 把暂停的后台命令恢复运行时,系统反馈 sleep 命令在后台运行 。再用 ps 查询进程已经中断,用 jobs 已经查询不到后台命令 。
linux怎么停止进程Linux查看进程和终止进程的技巧
1. 在LINUX命令平台输入1-2个字符后按Tab键会自动补全后面的部分(前提是要有这个东西,例如在装了tomcat的前提下,输入tomcat的to按tab) 。
2. ps 命令用于查看当前正在运行的进程 。
grep 是搜索
例如: ps -ef | grep java
表示查看所有进程里CMD是java的进程信息
ps -aux | grep java
-aux 显示所有状态
ps
3. kill 命令用于终止进程
例如: kill -9 [PID]
-9表示强迫进程立即停止
通常用ps 查看进程PID ,用kill命令终止进程
网上关于这两块的内容
-----------------------------------------------------------------------------------
PS
-----------------------------------------------------------------------------------
1. ps简介
ps命令就是最根本相应情况下也是相当强大地进程查看命令.运用该命令可以确定有哪些进程正在运行和运行地状态、进程是否结束、进程有没有僵死、哪些进程占用了过多地资源等等.总之大部分信息均为可以通过执行该命令得到地.
2. ps命令及其参数
ps命令最经常使用地还是用于监控后台进程地工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设
备进行通信地,所以如果需要检测其情况,便可以运用ps命令了.
该命令语法格式如下:
ps [选项]
-e 显示所有进程,环境变量
-f 全格式
-h 不显示标题
-l 长格式
-w 宽输出
a 显示终端上地所有进程,包括其他用户地进程
r 只显示正在运行地进程
x 显示没有控制终端地进程
O[+|-] k1 [,[+|-] k2 [,…]] 根据SHORT KEYS、k1、k2中快捷键指定地多级排序顺序显示进程列表.
对于ps地不同格式都存在着默认地顺序指定.这些默认顺序可以被用户地指定所覆盖.在这里面“+”字符是可选地,“-”字符是倒转指定键地方向.
pids只列出进程标识符,之间运用逗号分隔.该进程列表必须在命令行参数地最后一个选项后面紧接着给出,中间不能插入空格.比如:ps -f1,4,5.
以下介绍长命令行选项,这些选项都运用“--”开头:
--sort X[+|-] key [,[+|-] key [,…]] 从SORT KEYS段中选一个多字母键.“+”字符是可选地,因为默认地方向就是按数字升序或者词典顺序.比如: ps -jax -sort=uid,-ppid,+pid.
--help 显示帮助信息.
--version 显示该命令地版本信息.
在前面地选项说明中提到了排序键,接下来对排序键作进一步说明.需要注意地是排序中运用地值是ps运用地内部值,并非仅用于某些输出格式地伪值.排序键列表见表4-3.
表4-3 排序键列表
c
cmd
可执行地简单名称
C
cmdline
完整命令行
f
flags
长模式标志
g
pgrp
进程地组ID
G
tpgid
控制tty进程组ID
j
cutime
累计用户时间
J
cstime
累计系统时间
k
utime
用户时间
K
stime
系统时间
m
min_flt
次要页错误地数量
M
maj_flt
重点页错误地数量
n
cmin_flt
累计次要页错误
N
cmaj_flt
累计重点页错误
o
session
对话ID
p
pid
进程ID
P
ppid
父进程ID
r
rss
驻留大小
R
resident
驻留页
s
size
内存大小(千字节)
S
share
共享页地数量
t
tty
tty次要设备号
T
start_time
进程启动地时间
U
uid
UID
u
user
用户名
v
vsize
总地虚拟内存数量(字节)
y
priority
内核调度优先级
3. 经常使用ps命令参数
最经常使用地三个参数是u、a、x,下面将通过例子来说明其具体用法.
[例20] 以root身份登录系统,查看当前进程状况
$ ps
PID TTY TIME COMMAND
5800 ttyp0 00:00:00 bash
5835 ttyp0 00:00:00 ps
可以看到,显示地项目共分为四项,依次为PID(进程ID)、TTY(终端名称)、TIME(进程执行时间)
、COMMAND(该进程地命令行输入).
可以运用u选项来查看进程所有者及其他少许详细信息,如下所示:
$ ps u
USER PID %CPU %MEM USZ RSS TTY STAT START TIME COMMAND
test 5800 0.0 0.4 1892 1040 ttyp0 S Nov27 0:00 -bash
test 5836 0.0 0.3 2528 856 ttyp0 R Nov27 0:00 ps u
在bash进程前面有条横线,意味着该进程便是用户地登录shell,所以对于一个登录用户来说带短横线地进程只有一个.还可以看到%CPU、%MEM两个选项,前者指该进程占用地CPU时间和总时间地百分比;后者指该进程占用地内存和总内存地百分比.
在这种情况下看到了所有控制终端地进程;当然对于其他那些没有控制终端地进程还是没有观察到,所以这时就需要运用x选项.运用x选项可以观察到所有地进程情况.
-----------------------------------------------------------------------------------
KILL
-----------------------------------------------------------------------------------
由于职责的要求,你不得不费力地阅读那些令你感到费解的晦涩的Linux应用程序的说明文件 。然后,你将运行指令和编辑设置文件 。一切都在正常 运行 , 生活真美好 。但是,你知道,好时光不会永远持续下去 。当你遇到令人恐惧的“send the process a SIGHUP”提示时,好时光结束了 。
什么是“SIGHUP(启动信号)”,你如何发送它?它像是你送给你的恋人的一束花吗?虽然你可以肯定这不是一个命令行指令,不过 , 你还是试着 键入它 。当然,这没有结果 。然后,你检查一下键盘 。哦 , 没有SIGHUP键 。于是你又重新阅读这个应用程序的参考指南,看到下面这段文字:
当收到一个hangup(进程结束)信号时,sshd程序会重新阅读配置文件 。通过执行启动程序时的命令及选项来发送SIGHUP信号,如:/usr/sbin/sshd 。
哦,原来是这样 。
程序员 VS 使用者
LINUX程序的在线参考指南作者一般都要既照顾到最终用户的需求也要照顾到高级程序员的需求 。因此,有些说明比较难懂 。不过 , 不要担心 。现在我们就要揭开覆盖在这些让人迷惑的内容上面那神秘的面纱 。
信号与进程控制
这个问题主要属于信号和进程控制的范畴 。对于我们系统管理员和普通用户来说,我们主要关心的是启动、停止和重新启动服务、停止失控的进程和被挂起的进程,并且尽可能不中断系统运行 。因为不同的
操作系统和不同的命令外壳处理信号的方式都不相同 , 我们这里只介绍Linux操作系统和bash外壳 。
信号是用来与守护程序和进程通信的 。任何活动任务都是一个进程,而守护程序是等待对某些事件做出反应或者按照日程安排执行任务的后台服务 。一个 程序必须有建在其中的信号处理程序用于捕获和应答信号 。在LINUX中的signal 参考指南解释了各种不同信号和这些信号的用途 。信号是由“kill”命令发出的 。kill -l命令可以显示一个可用信号列表及其编号 。
所有的守护程序和进程都有一个进程ID(PID) , 例如使用ps命名所显示的内容:
$ ps aux
USER PID %CPU %MEM TTY STAT COMMAND
root 1 0.0 0.1 ? S init [2]
105 7783 0.0 0.2 ? Ss /usr/bin/dbus-daemon --system
hal 7796 0.0 0.7 ? Ss /usr/sbin/hald
postfix 7957 0.0 0.2 ? S qmgr -l -t fifo -u -c
nagios 8371 0.0 0.2 ? SNs /usr/sbin/nagios /etc/nagios/nagios.cfg
这个输出是经过简化的 。你在系统中可以看到更多的行和栏目 。如果某些进程消耗了你的全部CPU或者内存,你可以在这个输出的%CPU和%MEM 列中发现它们 。找到失控的进程的一种更快捷的方法是使用top命令 , 因为按照默认的设置,使用占用CPU资源最多的进程在最上面显示 。我们可以使用一条 “yes”命令来测试一下:
$ yes carla is teh awesum
这个命令将以很高的速度反复显示“carla is teh awesum”,直到你停止它运行 。这将使你的CPU使用率达到警戒线 。
$ top
...
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12144 carla 25 0 31592 17m 13m R 93.4 3.5 0:50.26 konsole
22236 carla 15 0 2860 468 400 S 4.3 0.1 0:00.97 yes
分析一下这个结果,你会发现一些有趣的事,你会发现,占用CPU最多的程序是konsole虚拟终端程序,而不是“yes”命令 , 这是因为 “yes”命令是在konsole终端程序中运行的 。如果在一个“真正的”控制台(按Ctrl+alt+f2键)中运行同样的命令序列,你将看到 “yes”命令被排在第一位 。
有许多停止“yes”命令运行的方式 。如果你要回到运行它的shell中,按CTRL+c键就可以了 。或者你可以在另一个shell中用“kill”命令停止“yes”命令的运行,Kill命令后面跟PID或者命令名称 , 如下如示:
$ kill 22236
或者
$ killall yes
按CTRL+c键发出一个SIGINT(信号2) , 这个信号是键盘要求取得控制权的中断信号 。kill和killall这两个命令按照默认的设 置都发出一个SIGTERM信号(编号15) 。程序中可以设置对SIGTERM信号(15)是捕捉或者忽略,或者以不同的方式解释 。因此,如果你的程序对 于 KILL命令的反应与你预期不同,很可能是被KILL的目标程序的问题 。
终止一个父进程通常也终止了它的子进程 。不过,情况并不总是如此 。你知道子进程是什么吗?使用ps命令加上-f选项就可以看到,如下所示:
$ ps axf
22371 ? R 2:35 _ konsole [kdeinit]
22372 pts/3 Ss 0:00 | _ /bin/bash
24322 pts/3 S+ 0:00 | | _ yes carla is teh awesum
22381 pts/4 Rs 0:00 | _ /bin/bash
24323 pts/4 R+ 0:00 | | _ ps axf
现在,回到SIGHUP的话题
SIGHUP的发音是“sig-hup”,是signal hangup的缩写,含义是“中止信号” 。你如何发送一个SIGHUP信号呢?这里有几种方式:
# kill -HUP [pid]
# killall -HUP [process-name]
# kill -1 [pid]
# killall -1 [process-name]
因此,你可以使用PID或者名称,信号名称或者号码 。那么为什么要这样做而不使用/etc/init.d/foo命令重新启动呢?使用它们自己 的 init(初始化)文件来控制服务是优先选择的方式,因为这些文件通常包含健全和错误检查以及额外的功能 。使用“kill”命令和信号的主要原因是尽可能 明确地终止挂起和失控的进程,而不必重新启动或者登出 。
终止进程
正如你在关于信号的man page中所看到的,有十几种控制进程的方法 。下面是一些常用的方法:
kill -STOP [pid]
发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程 。
kill -CONT [pid]
发送SIGCONT (19,18,25)重新开始一个停止的进程 。
kill -KILL [pid]
发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作 。
kill -9 -1
终止你拥有的全部进程 。
SIGKILL和SIGSTOP信号不能被捕捉、封锁或者忽略,但是,其它的信号可以 。所以这是你的终极武器 。
Bash shell的Kil命令l
Bash外壳包含一个内置的kill命令,当执行下面命令:
$ type -all kill
kill is a shell built-in
kill is /bin/kill
命令的结果表明有两个kill命令,一个是BASH的内置命令,另一个是/bin/kill可执行程序 。一般来说这两个命令不太可能遇到冲突的情况,不过,如果你确实遇到了kill命令行为异常时,你可以明确的指定/bin/kill命令 。
你一定要进一步查阅下面的资源中列出的参考资源来了解Linux中kill的妙用 , 因为这是你进入维护Linux系统领域的门票 。这些知识能够让你像做外科手术一样对系统进行维护,而不用在遇到问题时每一次都重新启动系统,就像我们知道的某些蹩脚的
操作系统那样 。
资源
Linux Cookbook一书的第七章“开始和终止Linux”
bash (1) - GNU Bourne-Again Shell
yes (1) - 在被终止前反复打印字符
signal (7) - 可用信号列表
ps (1) - 报告当前进程的快照
kill (1) - 向一个进程发出信号
killall (1) - 按名字消灭进程
pkill (1) - 根据名字和其它属性查看或者发出进程信号
skill (1) - 发送一个信号或者报告进程状态
xkill (1) - 按照X资源消灭一个客户程序
linux中断某进程命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、linux中断某进程命令的信息别忘了在本站进行查找喔 。

    推荐阅读