进程管理详细讲解文档格式.docx
- 文档编号:19915723
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:14
- 大小:25.27KB
进程管理详细讲解文档格式.docx
《进程管理详细讲解文档格式.docx》由会员分享,可在线阅读,更多相关《进程管理详细讲解文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
u
按用户名和启动时间的顺序来显示进程;
j
用任务格式来显示进程;
f
用树形格式来显示进程;
a
显示所有用户的所有进程(包括其它用户);
x
显示无控制终端的进程;
r
显示运行中的进程;
ww避免详细参数被截断;
我们常用的选项是组合是aux或lax,还有参数f的应用;
psaux或lax输出的解释;
USER
进程的属主;
PID
进程的ID;
PPID
父进程;
%CPU
进程占用的CPU百分比;
%MEM
占用内存的百分比;
NI
进程的NICE值,数值大,表示较少占用CPU时间;
VSZ进程虚拟大小;
RSS
驻留中页的数量;
WCHAN
TTY
终端ID
STAT进程状态
D
Uninterruptiblesleep(usuallyIO)
R
正在运行可中在队列中可过行的;
S
处于休眠状态;
T
停止或被追踪;
W
进入内存交换(从内核2.6开始无效);
X
死掉的进程(从来没见过);
Z
僵尸进程;
<
优先级高的进程
N
优先级较低的进程
L
有些页被锁进内存;
s
进程的领导者(在它之下有子进程);
ismulti-threaded(usingCLONE_THREAD,likeNPTLpthreadsdo)
+
位于后台的进程组;
WCHAN
正在等待的进程资源;
START启动进程的时间;
TIME
进程消耗CPU的时间;
COMMAND命令的名称和参数;
2.1.2ps应用举例;
实例一:
psaux最常用
[root@localhost~]#ps-aux|more
可以用|管道和more连接起来分页查看;
[root@localhost~]#ps-aux>
ps001.txt
[root@localhost~]#moreps001.txt
这里是把所有进程显示出来,并输出到ps001.txt文件,然后再通过more来分页查看;
实例二:
和grep结合,提取指定程序的进程;
[root@localhost~]#psaux|grephttpd
root41870.01.32423610272?
Ss11:
550:
00/usr/sbin/httpd
apache41890.00.6243684940?
S11:
apache41900.00.6243684932?
apache41910.00.6243684932?
apache41920.00.6243684932?
apache41930.00.6243684932?
apache41940.00.6243684932?
apache41950.00.6243684932?
apache41960.00.6243684932?
root44800.00.05160708pts/3R+12:
200:
00grephttpd
父进和子进程的关系友好判断的例子
[root@localhost~]#psauxf|grephttpd
root44840.00.05160704pts/3S+12:
210:
00\_grephttpd
00\_/usr/sbin/httpd
这里用到了f参数;
父与子关系一目了然;
2.2pgrep
pgrep是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。
在服务器的配置和管理中,这个工具常被应用,简单明了;
用法:
#ps参数选项程序名
常用参数
-l列出程序名和进程ID;
-o进程起始的ID;
-n进程终止的ID;
举例:
[root@localhost~]#pgrep-lohttpd
4557httpd
[root@localhost~]#pgrep-lnhttpd
4566httpd
[root@localhost~]#pgrep-lhttpd
4560httpd
4561httpd
4562httpd
4563httpd
4564httpd
4565httpd
[root@localhost~]#pgrephttpd
4557
4560
4561
4562
4563
4564
4565
4566
3、终止进程的工具kill、killall、pkill、xkill;
终止一个进程或终止一个正在运行的程序,一般是通过kill、killall、pkill、xkill等进行。
比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。
另外应用的场合就是在服务器管理中,在不涉及数据库服务器程序的父进程的停止运行,也可以用这些工具来终止。
为什么数据库服务器的父进程不能用这些工具杀死呢?
原因很简单,这些工具在强行终止数据库服务器时,会让数据库产生更多的文件碎片,当碎片达到一定程度的时候,数据库就有崩溃的危险。
比如mysql服务器最好是按其正常的程序关闭,而不是用pkillmysqld或killallmysqld这样危险的动作;
当然对于占用资源过多的数据库子进程,我们应该用kill来杀掉。
3.1kill
kill的应用是和ps或pgrep命令结合在一起使用的;
kill的用法:
kill[信号代码]
进程ID
注:
信号代码可以省略;
我们常用的信号代码是-9,表示强制终止;
root49390.00.05160708pts/3S+13:
100:
root48300.11.32423210272?
Ss13:
020:
apache48330.00.6243644932?
S13:
apache48340.00.6243644928?
apache48350.00.6243644928?
apache48360.00.6243644928?
apache48370.00.6243644928?
apache48380.00.6243644928?
apache48390.00.6243644928?
apache48400.00.6243644928?
我们查看httpd服务器的进程;
您也可以用pgrep-lhttpd来查看;
我们看上面例子中的第二列,就是进程PID的列,其中4830是httpd服务器的父进程,从4833-4840的进程都是它4830的子进程;
如果我们杀掉父进程4830的话,其下的子进程也会跟着死掉;
[root@localhost~]#kill4840注:
杀掉4840这个进程;
[root@localhost~]#ps-auxf|grephttpd注:
查看一下会有什么结果?
是不是httpd服务器仍在运行?
[root@localhost~]#kill4830注:
杀掉httpd的父进程;
[root@localhost~]#ps-aux|grephttpd注:
查看httpd的其它子进程是否存在,httpd服务器是否仍在运行?
对于僵尸进程,可以用kill-9来强制终止退出;
比如一个程序已经彻底死掉,如果kill不加信号强度是没有办法退出,最好的办法就是加信号强度-9,后面要接杀父进程;
比如;
[root@localhost~]#psaux|grepgaim
beinan50319.02.310499617484?
230:
01gaim
root50360.00.05160724pts/3S+13:
240:
00grepgaim
或
[root@localhost~]#pgrep-lgaim
5031gaim
[root@localhost~]#kill-95031
3.2killall
killall通过程序的名字,直接杀死所有进程,咱们简单说一下就行了。
killall正在运行的程序名
killall也和ps或pgrep结合使用,比较方便;
通过ps或pgrep来查看哪些程序在运行;
[root@localhostbeinan]#pgrep-lgaim
2979gaim
[root@localhostbeinan]#killallgaim
3.3pkill
pkill和killall应用方法差不多,也是直接杀死运行中的程序;
如果您想杀掉单个进程,请用kill来杀掉。
应用方法:
#pkill正在运行的程序名
[root@localhostbeinan]#pkillgaim
3.4xkill
xkill是在桌面用的杀死图形界面的程序。
比如当firefox出现崩溃不能退出时,点鼠标就能杀死firefox。
当xkill运行时出来和个人脑骨的图标,哪个图形程序崩溃一点就OK了。
如果您想终止xkill,就按右键取消;
xkill调用方法:
[root@localhost~]#xkill
4、top监视系统任务的工具;
和ps相比,top是动态监视系统任务的工具,top输出的结果是连续的;
4.1top命令用法及参数;
top调用方法:
top选择参数
参数:
-b以批量模式运行,但不能接受命令行输入;
-c显示命令行,而不仅仅是命令名;
-dN显示两次刷新时间的间隔,比如-d5,表示两次刷新间隔为5秒;
-i禁止显示空闲进程或僵尸进程;
-nNUM显示更新次数,然后退出。
比如-n5,表示top更新5次数据就退出;
-pPID仅监视指定进程的ID;
PID是一个数值;
-q不经任何延时就刷新;
-s安全模式运行,禁用一些效互指令;
-S累积模式,输出每个进程的总的CPU时间,包括已死的子进程;
交互式命令键位:
space立即更新;
c切换到命令名显示,或显示整个命令(包括参数);
f,F增加显示字段,或删除显示字段;
h,?
显示有关安全模式及累积模式的帮助信息;
k提示输入要杀死的进程ID,目的是用来杀死该进程(默人信号为15)
i禁止空闲进程和僵尸进程;
l切换到显法负载平均值和正常运行的时间等信息;
m切换到内存信息,并以内存占用大小排序;
n提示显示的进程数,比如输入3,就在整屏上显示3个进程;
o,O改变显示字段的顺序;
r把renice应用到一个进程,提示输入PID和renice的值;
s改变两次刷新时间间隔,以秒为单位;
t切换到显示进程和CPU状态的信息;
A按进程生命大小进行排序,最新进程显示在最前;
M按内存占用大小排序,由大到小;
N以进程ID大小排序,由大到小;
P按CPU占用情况排序,由大到小
S切换到累积时间模式;
T按时间/累积时间对任务排序;
W把当前的配置写到~/.toprc中;
4.2top应用举例;
[root@localhost~]#top
然后根据前面所说交互命令按个尝试一下就明白了,比如按M,就按内存占用大小排序;
这个例子举不举都没有必要了。
当然您可以把top的输出传到一个文件中;
[root@localhost~]#top>
mytop.txt
然后我们就可以查看mytop文件,以慢慢的分析系统进程状态;
5、进程的优先级:
nice和renice;
在Linux操作系统中,进程之间是竟争资源(比如CPU和内存的占用)关系。
这个竟争优劣是通过一个数值来实现的,也就是谦让度。
高谦让度表示进程优化级别最低。
负值或0表示对高优点级,对其它进程不谦让,也就是拥有优先占用系统资源的权利。
谦让度的值从-20到19。
目前硬件技术发展极速,在大多情况下,不必设置进程的优先级,除非在进程失控而疯狂占用资源的情况下,我们有可能来设置一下优先级,但我个人感觉没有太大的必要,在迫不得已的情况下,我们可以杀掉失控进程。
nice可以在创建进程时,为进程指定谦让度的值,进程的优先级的值是父进程SHELL的优先级的值与我们所指定谦让度的相加和。
所以我们在用nice设置程序的优先级时,所指定数值是一个增量,并不是优先级的绝对值;
nice的应用举例:
[root@localhost~]#nice-n5gaim&
注:
运行gaim程序,并为它指定谦让度增量为5;
所以nice的最常用的应用就是:
nice-n谦让度的增量值程序
renice是通过进程ID(PID)来改变谦让度,进而达到更改进程的优先级。
renice谦让度PID
renice所设置的谦让度就是进程的绝对值;
看下面的例子;
[root@localhost~]#pslax
|grepgaim
4
0
4437
3419
10
-512092420492-
S<
pts/0
0:
0
4530
-5
5160
708-
R<
pts/0
[root@localhost~]#renice-6
4437
4437:
oldpriority-5,newpriority-6
14
-612092420492-
4534
11
一般是fork出子进程的父进程已经结束,子进程无法释放资源,形成了僵尸进程.
进程已经死亡,但没有释放系统资源,包括内存和一些一些系统表等,如果这样的进程很多,会引发系统问题。
用ps-el看出的进程状态如果是Z,就是僵尸进程。
at:
计划任务,在特定的时间执行某项工作,在特定的时间执行一次。
格式:
at+时间
例1:
date//查看系统当前时间
at时间//系统计划启动任务时间
at>
date>
/root/1.txt//date:
系统计划启动任务时间执行date命令;
/root/1.txt执行命令写入位
置和文件
ctrl+d退出//退出at命令
例2:
init0/root/2.txt//init0:
系统计划启动任务时间执行init0(关机)命令;
/root/2.txt执
行命令写入位置和文件
例3:
在固定时间内添加一个用户(这时建立的用户没有密码)
#at12:
00(时间)//at命令设定12:
00执行一项操作
useraddaaa//在at命令里设定添加用户aaa
ctrl+d//退出at命令
tail-f/etc/passwd//查看/etc/passwd文件后十行是否增加了一个用户aaa
计划任务结束后,查看任务是否写入文件中,可以用cat或vi命令查看。
cat(vi)+(路径)文件名
例1:
cat(vi)1.txt
日2月609:
21:
28CST2005
计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务。
atq
例:
12005-02-0609:
23aroot
启动计划任务后,如果不想启动设定好的计划任务可以使用atrm命令删除。
atrm+任务号
例:
atrm1//删除计划任务1
atq//查看计划任务是否删除
还可以进入到/var/spool/at目录里把计划任务删除,计划任务的文件都保存在该目录里,可以用rm-f
文件名来删除(以文件的形式删除计划任务,因为计划任务是以文件形式保存在该目录中)
#cd/var/spool/at//进入到/var/spool/at目录中
ls//显示目录中所有文件
rm-fa0000a0119b0df//删除计划任务
在通常情况下,超级用户都可以使用这个命令。
对于其他用户来说,能否可以使用就取决于两个文
件:
/etc/at.allow和/etc/at.deny。
当“用户名”写入/etc/at.deny中,用户不能执行at命令(管理员限制用户使用at命令)。
useraddtext//新建一个text用户
ls/etc/at.deny//查看at.deny文件内容
vi/etc/at.deny//对at.deny文件进行编辑
text//对at.deny文件进行编辑,写入text用户名,进行at命令限制,然后wq(保存退出)
cat/etc/at.deny//显示at.deny文件内容
su-text//切换到text用户
at12:
00//text用户执行at命令,如果被限制则出现下面的提示。
Youdonothavepermissionto
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 管理 详细 讲解