linux查看进程和终止进程Word文档下载推荐.docx
- 文档编号:4815012
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:11
- 大小:20.55KB
linux查看进程和终止进程Word文档下载推荐.docx
《linux查看进程和终止进程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《linux查看进程和终止进程Word文档下载推荐.docx(11页珍藏版)》请在冰点文库上搜索。
-w宽输出
a
显示终端上地所有进程,包括其他用户地进程
r
只显示正在运行地进程
x
显示没有控制终端地进程
O[+|-]k1[,[+|-]k2[,…]]根据SHORTKEYS、k1、k2中快捷键指定地多级排序顺序显示进程列表.
对于ps地不同格式都存在着默认地顺序指定.这些默认顺序可以被用户地指定所覆盖.在这里面“+”字符是可选地,“-”字符是倒转指定键地方向.
pids只列出进程标识符,之间运用逗号分隔.该进程列表必须在命令行参数地最后一个选项后面紧接着给出,中间不能插入空格.比如:
ps-f1,4,5.
以下介绍长命令行选项,这些选项都运用“--”开头:
--sortX[+|-]key[,[+|-]key[,…]]从SORTKEYS段中选一个多字母键.“+”字符是可选地,因为默认地方向就是按数字升序或者词典顺序.比如:
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
PIDTTYTIMECOMMAND
5800ttyp000:
00:
00bash
5835ttyp000:
00ps
可以看到,显示地项目共分为四项,依次为PID(进程ID)、TTY(终端名称)、TIME(进程执行时间)
、COMMAND(该进程地命令行输入).
可以运用u选项来查看进程所有者及其他少许详细信息,如下所示:
$psu
USERPID%CPU%MEMUSZRSSTTYSTATSTARTTIMECOMMAND
test58000.00.418921040ttyp0SNov270:
00-bash
test58360.00.32528856ttyp0RNov270:
00psu
在bash进程前面有条横线,意味着该进程便是用户地登录shell,所以对于一个登录用户来说带短横线地进程只有一个.还可以看到%CPU、%MEM两个选项,前者指该进程占用地CPU时间和总时间地百分比;
后者指该进程占用地内存和总内存地百分比.
在这种情况下看到了所有控制终端地进程;
当然对于其他那些没有控制终端地进程还是没有观察到,所以这时就需要运用x选项.运用x选项可以观察到所有地进程情况.
KILL
由于职责的要求,你不得不费力地阅读那些令你感到费解的晦涩的Linux应用程序的说明文件。
然后,你将运行指令和编辑设置文件。
一切都在正常运行,生活真美好。
但是,你知道,好时光不会永远持续下去。
当你遇到令人恐惧的“sendtheprocessaSIGHUP”提示时,好时光结束了。
什么是“SIGHUP(启动信号)”,你如何发送它?
它像是你送给你的恋人的一束花吗?
虽然你可以肯定这不是一个命令行指令,不过,你还是试着键入它。
当然,这没有结果。
然后,你检查一下键盘。
哦,没有SIGHUP键。
于是你又重新阅读这个应用程序的参考指南,看到下面这段文字:
当收到一个hangup(进程结束)信号时,sshd程序会重新阅读配置文件。
通过执行启动程序时的命令及选项来发送SIGHUP信号,如:
/usr/sbin/sshd。
哦,原来是这样。
程序员VS使用者
LINUX程序的在线参考指南作者一般都要既照顾到最终用户的需求也要照顾到高级程序员的需求。
因此,有些说明比较难懂。
不过,不要担心。
现在我们就要揭开覆盖在这些让人迷惑的内容上面那神秘的面纱。
信号与进程控制
这个问题主要属于信号和进程控制的范畴。
对于我们系统管理员和普通用户来说,我们主要关心的是启动、停止和重新启动服务、停止失控的进程和被挂起的进程,并且尽可能不中断系统运行。
因为不同的
操作系统和不同的命令外壳处理信号的方式都不相同,我们这里只介绍Linux操作系统和bash外壳。
信号是用来与守护程序和进程通信的。
任何活动任务都是一个进程,而守护程序是等待对某些事件做出反应或者按照日程安排执行任务的后台服务。
一个程序必须有建在其中的信号处理程序用于捕获和应答信号。
在LINUX中的signal参考指南解释了各种不同信号和这些信号的用途。
信号是由“kill”命令发出的。
kill-l命令可以显示一个可用信号列表及其编号。
所有的守护程序和进程都有一个进程ID(PID),例如使用ps命名所显示的内容:
$psaux
USERPID%CPU%MEMTTYSTATCOMMAND
root10.00.1?
Sinit[2]
10577830.00.2?
Ss/usr/bin/dbus-daemon--system
hal77960.00.7?
Ss/usr/sbin/hald
postfix79570.00.2?
Sqmgr-l-tfifo-u-c
nagios83710.00.2?
SNs/usr/sbin/nagios/etc/nagios/nagios.cfg
这个输出是经过简化的。
你在系统中可以看到更多的行和栏目。
如果某些进程消耗了你的全部CPU或者内存,你可以在这个输出的%CPU和%MEM列中发现它们。
找到失控的进程的一种更快捷的方法是使用top命令,因为按照默认的设置,使用占用CPU资源最多的进程在最上面显示。
我们可以使用一条“yes”命令来测试一下:
$yescarlaistehawesum
这个命令将以很高的速度反复显示“carlaistehawesum”,直到你停止它运行。
这将使你的CPU使用率达到警戒线。
$top
...
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND
12144carla2503159217m13mR93.43.50:
50.26konsole
22236carla1502860468400S4.30.10:
00.97yes
分析一下这个结果,你会发现一些有趣的事,你会发现,占用CPU最多的程序是konsole虚拟终端程序,而不是“yes”命令,这是因为“yes”命令是在konsole终端程序中运行的。
如果在一个“真正的”控制台(按Ctrl+alt+f2键)中运行同样的命令序列,你将看到“yes”命令被排在第一位。
有许多停止“yes”命令运行的方式。
如果你要回到运行它的shell中,按CTRL+c键就可以了。
或者你可以在另一个shell中用“kill”命令停止“yes”命令的运行,Kill命令后面跟PID或者命令名称,如下如示:
$kill22236
或者
$killallyes
按CTRL+c键发出一个SIGINT(信号2),这个信号是键盘要求取得控制权的中断信号。
kill和killall这两个命令按照默认的设置都发出一个SIGTERM信号(编号15)。
程序中可以设置对SIGTERM信号(15)是捕捉或者忽略,或者以不同的方式解释。
因此,如果你的程序对于KILL命令的反应与你预期不同,很可能是被KILL的目标程序的问题。
终止一个父进程通常也终止了它的子进程。
不过,情况并不总是如此。
你知道子进程是什么吗?
使用ps命令加上-f选项就可以看到,如下所示:
$psaxf
22371?
R2:
35_konsole[kdeinit]
22372pts/3Ss0:
00|_/bin/bash
24322pts/3S+0:
00||_yescarlaistehawesum
22381pts/4Rs0:
24323pts/4R+0:
00||_psaxf
现在,回到SIGHUP的话题
SIGHUP的发音是“sig-hup”,是signalhangup的缩写,含义是“中止信号”。
你如何发送一个SIGHUP信号呢?
这里有几种方式:
#kill-HUP[pid]
#killall-HUP[process-name]
#kill-1[pid]
#killall-1[process-name]
因此,你可以使用PID或者名称,信号名称或者号码。
那么为什么要这样做而不使用/etc/init.d/foo命令重新启动呢?
使用它们自己的init(初始化)文件来控制服务是优先选择的方式,因为这些文件通常包含健全和错误检查以及额外的功能。
使用“kill”命令和信号的主要原因是尽可能明确地终止挂起和失控的进程,而不必重新启动或者登出。
终止进程
正如你在关于信号的manpage中所看到的,有十几种控制进程的方法。
下面是一些常用的方法:
kill-STOP[pid]
发送SIGSTOP(17,19,23)停止一个进程,而并不消灭这个进程。
kill-CONT[pid]
发送SIGCONT(19,18,25)重新开始一个停止的进程。
kill-KILL[pid]
发送SIGKILL(9)强迫进程立即停止,并且不实施清理操作。
kill-9-1
终止你拥有的全部进程。
SIGKILL和SIGSTOP信号不能被捕捉、封锁或者忽略,但是,其它的信号可以。
所以这是你的终极武器。
Bashshell的Kil命令l
Bash外壳包含一个内置的kill命令,当执行下面命令:
$type-allkill
killisashellbuilt-in
killis/bin/kill
命令的结果表明有两个kill命令,一个是BASH的内置命令,另一个是/bin/kill可执行程序。
一般来说这两个命令不太可能遇到冲突的情况,不过,如果你确实遇到了kill命令行为异常时,你可以明确的指定/bin/kill命令。
你一定要进一步查阅下面的资源中列出的参考资源来了解Linux中kill的妙用,因为这是你进入维护Linux系统领域的门票。
这些知识能够让你像做外科手术一样对系统进行维护,而不用在遇到问题时每一次都重新启动系统,就像我们知道的某些蹩脚的
操作系统那样。
资源
LinuxCookbook一书的第七章“开始和终止Linux”
bash
(1)-GNUBourne-AgainShell
yes
(1)-在被终止前反复打印字符
signal(7)-可用信号列表
ps
(1)-报告当前进程的快照
kill
(1)-向一个进程发出信号
killall
(1)-按名字消灭进程
pkill
(1)-根据名字和其它属性查看或者发出进程信号
skill
(1)-发送一个信号或者报告进程状态
xkill
(1)-按照X资源消灭一个客户程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 查看 进程 终止