Linux进程管理命令详解.docx

上传人:b****7 文档编号:9030504 上传时间:2023-02-02 格式:DOCX 页数:16 大小:25.18KB
下载 相关 举报
Linux进程管理命令详解.docx_第1页
第1页 / 共16页
Linux进程管理命令详解.docx_第2页
第2页 / 共16页
Linux进程管理命令详解.docx_第3页
第3页 / 共16页
Linux进程管理命令详解.docx_第4页
第4页 / 共16页
Linux进程管理命令详解.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

Linux进程管理命令详解.docx

《Linux进程管理命令详解.docx》由会员分享,可在线阅读,更多相关《Linux进程管理命令详解.docx(16页珍藏版)》请在冰豆网上搜索。

Linux进程管理命令详解.docx

Linux进程管理命令详解

Linux进程管理命令详解

Linux进程管理命令详解2010-10-0814:

124.3Linux进程管理命令详解

(1)

Linux管理进程的最好方法就是使用命令行下的系统命令。

Linux下面的进程涉及的命令有at,bg,fg,kill,crontab,jobs,ps,pstree,top,nice,renice,sleep,nohup。

1.at命令:

定时运行命令

作用:

at命令在指定时刻执行指定的命令序列。

格式:

at[-V][-qx][-ffile][-m]timeatq[-V][-qx]

atrm[-V][-qx]job…

batch[-V][-ffile][-m]

主要选项如下。

-V:

显示作业将被执行的时间。

-q:

选用q参数则可选队列名称,队列名称可以是a~z和A~Z之间的任意字母。

队列字母顺序越高则队列优先级别越低。

-f:

从文件中读取命令或shell脚本,而非在提示后指定它们。

-m:

执行完作业后发送电子邮件到用户。

time:

设定作业执行的时间。

time参数可以是下面格式中的任何一种。

HH:

MM格式--如04:

00,代表4:

00AM。

如果时间已过,就会在第二天的这一时间执行。

midnight代表12:

00AM。

noon代表12:

00PM。

teatime代表4:

00PM。

英文月名日期年份格式--如January152005,代表2005年1月15日。

年份可无。

MMDDYY、MM/DD/YY或MM.DD.YY格式--如011505,代表2005年1月15日。

now+时间格式--时间以minutes、hours、days或weeks为单位。

如now+5days,代表命令应该在5天之后的此时此刻执行。

偏移量的格式为时间+偏移量,单位是minutes、hours和days。

说明:

at命令实际上是一组命令集合。

at命令在指定时刻执行指定的命令序列。

atq查询已经设定的命令序列。

atrm删除已经设定的命令序列。

batch当系统负载低于一个设定值(0.8),执行设定的命令序列。

应用实例如下。

(1)让系统在两天后的17:

30执行文件data中指定的作业,使用命令:

#at-fdata15:

30+2days

(2)配置batch作业

要在系统平均载量降到0.8以下时执行某项一次性的任务,使用batch命令。

键入batch命令后,"at"提示就会出现。

键入要执行的命令,按"Enter"键,然后键入"Ctrl-D"。

你可以指定多条命令,方法是键入每一条命令后按"Enter"键。

键入所有命令后,按"Enter"键转入一个空行,然后再键入"Ctrl-D"。

或者你也可以在提示后输入shell脚本,在脚本的每一行后按"Enter"键,然后在空行处键入"Ctrl-D"来退出。

系统平均载量一降到0.8以下,这组命令或脚本就会被执行。

如果这组命令或脚本试图在标准输出中显示信息,该输出会用电子邮件方式被邮寄给用户。

(3)进阶应用:

控制对at和batch的使用

通过/etc/at.allow和/etc/at.deny文件可以用来限制对at和batch命令的使用。

这两个使用控制文件的格式都是每行一个用户。

两个文件都不允许使用空白字符。

如果控制文件被修改了,at守护进程不必被重启。

每次用户试图执行at或batch命令时,使用控制文件都会被读取。

不论控制文件如何规定,超级权限用户总是可以执行at和batch命令。

如果at.allow文件存在,只有其中列出的用户才能使用at或batch命令,at.deny文件会被忽略。

如果at.allow文件不存在,所有在at.deny文件中列出的用户都被禁止使用at和batch命令。

2.bg命令后台运行命令

作用:

bg命令使一个被挂起的进程在后台执行。

格式:

bg

该命令无参数。

使用说明:

Linux作为一个多任务环境,用户会同时执行多项任务,例如,查看系统情况、备份资料、编辑文件和打印文件等。

耗时长的任务不应该在前台任务中执行,而应该交给后台任务去执行。

这样前台任务可继续正常运作其他的操作,不用等待。

应用实例如下。

(1)如果要将一个大目录的文件进行排序后,将结果输入到一个文件中,可以使用命令:

#du-a/|sort-rn/tmp/du.sorted

(2)由于这个命令执行时间很长,可以把它放在后台运行。

使用组合键"Ctrl+Z"。

然后使用bg命令。

如果想直接把这个命令放在后台执行,可以在命令后使用"&"符号:

#du-a/|sort-rn/tmp/du.sorted&

[1]237m323.Fg挂起程序

作用:

fg命令使一个被挂起的进程在前台执行。

格式:

fg-[job-spec]

[job-spec]:

后台任务号码。

说明:

fg命令和bg命令是相对应的。

如果想查看后台程序运行情况,可以使用fg命令把它调回前台查看。

bg命令可以使多个进程放到后台中执行。

应用实例如下。

使用fg命令时,要加入后台任务号码,如果不加任何号码,则所变动的均是当前任务。

#du-a/|sort-rn/tmp/du.sorted&

[1]237

#fg1

4.Jobs显示后台程序

作用:

jobs命令显示后台任务的执行情况。

格式:

jobs[选项][jobspec…]

主要选项如下。

-l:

长输出格式,显示全部内容。

-n:

不输出信息。

-p:

只输出进程号。

-r:

只输出运行的进程。

[jobspec]:

后台任务号码。

应用实例如下。

先把两个进程放在系统后台运行,然后使用jobs命令查看后台任务的执行情况:

#du-a/etcuser.data&

[1]233

#find/-namecore-typef-lscore.data&

[2]234

#jobs-l

[1]+237Runningdu-a/etcuser.data

[2]-238Runningfind/-namecore-typef-lscore.data

说明:

上面的当前任务是"du-a/etcuser.data",因为后台任务号码是"[1]"。

当第一个后台任务顺利执行完毕,第二个后台任务还在执行中时,当前任务便会自动变成后台任务号码"[2]"的后台任务。

即当前任务是动态的。

5.kill命令杀掉进程

作用:

kill命令终止一个进程。

格式:

kill[-ssignal|-p][-a]pid…

kill-l[signal]

主要选项如下。

-s:

指定发送的信号。

-p:

模拟发送信号。

-l:

指定信号的名称列表。

pid:

要终止的进程的ID号。

signal:

表示信号。

说明:

kill可将指定的信息送至程序。

预设的信息为SIGTERM(15),可将指定程序终止。

若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。

kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标志号,然后系统内核就可以对进程标志号指定的进程进行操作。

当需要中断一个前台进程的时候,通常使用Ctrl+C组合键;但是对于一个后台进程,就不是一个组合键所能解决的了,这时就必须使用kill命令。

应用实例如下。

命令执行过程如果出错,用户可用"kill"来结束任务。

对于在后台运行的进程,可以使用kill命令终止:

#du-a/|sort-rn/tmp/du.sorted&

[1]237

#kill237

或者使用命令:

#du-a/|sort-rn/tmp/du.sorted&

[1]237

#kill%1

对于僵尸进程,可以用kill-9来强制终止退出。

比如一个程序已经彻底死掉,如果kill不加信号强度没有办法退出,最好的办法就是加信号强度-9,后面要接杀父进程;比如;

比如:

[root@localhost~]#psaux|grepgaimbeinan50319.02.310499617484S13:

230:

01gaimroot50360.00.05160724pts/3S+13:

240:

00grepgaimkill命令族成员简介如下。

终止一个进程或终止一个正在运行的程序,一般通过kill、killall、pkill、xkill等进行。

比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。

killall通过程序的名字,直接杀死所有进程,pkill和killall的应用方法差不多,也是直接杀死运行中的程序。

如果你想杀掉单个进程,请用kill来杀掉。

xkill是在桌面用的杀死图形界面的程序。

比如当firefox出现崩溃不能退出时,点鼠标就能杀死firefox。

当xkill运行时出来和个人脑骨的图标,哪个图形程序崩溃,一点就OK了。

如果你想终止xkill,就单击右键取消。

6.crontab命令

作用:

crontab命令用于安装、删除或者列出用于驱动cron后台进程的任务表。

然后,该配置由cron守护进程在设定的时间执行。

格式:

crontab[-uuser]文件

crontab[-uuser]{-e|-l|-r}

主要选项如下。

-e:

执行文字编辑器来设定时程表,默认的文字编辑器是vi。

-r:

删除目前的时程表。

-l:

列出目前的时程表。

[-uuser]:

指定要设置的用户名称。

crontab文件的格式是:

minutehourdaymonthdayofweekcommandminute--分钟,从0~59之间的任何整数。

hour--小时,从0~23之间的任何整数。

day--日期,从1~31之间的任何整数(如果指定了月份,必须是该月份的有效日期)。

month--月份,从1~12之间的任何整数(或使用月份的英文简写如jan、feb等)。

dayofweek--星期,从0~7之间的任何整数,这里的0或7代表星期日(或使用星期的英文简写如sun、mon等)。

command--要执行的命令(可以是ls之类的命令,也可以是执行你自行编写的脚本的命令。

应用实例如下。

设置一个定时、定期的系统提示:

[cao@wwwcao]#crontab-e

此时系统会打开一个vi编辑器,如果我输入"3517**5Wall"明天休息,注意备份数据库",然后存盘退出。

这时在/var/spool/cron/目录下会生产一个cao的文件,内容如下:

#DONOTEDITTHISFILE-editthemasterandreinstall.

#(/tmp/crontab.2707installedonThuJan122:

01:

512004)

#(Cronversion-$Id:

crontab.

c,v2.131994/01/1703:

20:

37vixieExp$)

3517**5wall"明天休息,注意备份数据库"

这样到每个星期五下班时间(17:

35),系统就会弹出一个终端提醒我们注意备份数据库。

显示结果如图4-7所示。

(点击查看大图)图4-7一个定时、定期的系统提示

7.ps命令查看权限

作用:

ps命令主要查看系统中进程的状态。

格式:

ps[选项]

主要选项如下。

-A:

显示系统中所有进程的信息。

-e:

显示所有进程的信息。

-f:

显示进程的所有信息。

-l:

以长格式显示进程信息。

-r:

只显示正在运行的进程。

-u:

显示面向用户的格式(包括用户名、CPU及内存使用情况等信息)。

-x:

显示所有非控制终端上的进程信息。

-p:

显示由进程ID指定的进程的信息。

-t:

显示指定终端上的进程的信息。

说明:

要对进程进行监测和控制,首先要了解当前进程的情况,也就是需要查看当前进程。

ps命令就是最基本、也是非常强大的进程查看命令。

根据显示的信息可以确定哪个进程正在运行、哪个进程被挂起、进程已运行了多久、进程正在使用的资源、进程的相对优先级,以及进程的标志号(PID)。

所有这些信息对用户都很有用,对于系统管理员来说更为重要。

使用"ps-aux"命令可以获得终端上所有用户的有关进程的所有信息,下面结合图4-8讲解进程的基本信息。

图4-8第二行代码中,USER表示启动进程用户。

PID表示进程标志号。

%CPU表示运行该进程占用CPU的时间与该进程总的运行时间的比例。

%MEM表示该进程占用内存和总内存的比例。

VSZ表示占用的虚拟内存大小,以KB为单位。

RSS为进程占用的物理内存值,以KB为单位。

TTY表示该进程建立时所对应的终端,"?

"表示该进程不占用终端。

STAT表示进程的运行状态,包括以下几种代码:

D,不可中断的睡眠;R,就绪(在可运行队列中);S,睡眠;T,被跟踪或停止;Z,终止(僵死)的进程,Z不存在,但暂时无法消除;W,没有足够的内存分页可分配;高优先序的进程;N,低优先序的进程;L,有内存分页分配并锁在内存体内(实时系统或I/O)。

START为进程开始时间。

TIME为执行的时间。

COMMAND是对应的命令名。

(点击查看大图)图4-8ps-aux命令详解

应用实例如下。

在进行系统维护时,如果CPU负载突然增加,而又不知道是哪一个进程造成的情况。

使用命令:

#psaux|sort+3n

说明因为%CPU选项在第三列,所以sort选3作为参数,+表示升序输出结果。

8.pstree命令

pstree命令列出当前的进程,以及它们的树状结构。

格式:

pstree[选项][pid|user]

主要选项如下。

-a:

显示执行程序的命令与完整参数。

-c:

取消同名程序,合并显示。

-h:

对输出结果进行处理,高亮显示正在执行的程序。

-l:

长格式显示。

-n:

以PID大小排序。

-p:

显示PID。

-u:

显示UID信息。

-G:

使用VT100终端编码显示。

-U:

使用UTF-8(Unicode)编码显示。

说明:

使用ps命令得到的数据精确,但数据庞大,这一点对掌握系统整体概况来说是不容易的。

pstree正好可以弥补这个缺憾。

它能将当前的执行程序以树状结构显示。

pstree支持指定特定程序(PID)或使用者(USER)作为显示的起始。

应用实例如下。

进程启动的时候可能会产生自己的一个子进程。

运行pstree命令就可以很容易地看到这些信息。

以超级用户权限运行pstree:

#init-+-apmd

|-atd

|-bdflush

|-gconfd-2

|-gdm-binary---gdm-binary-+-X

|`-startkde-+-kwrapper

|`-ssh-agent

|-gpm

|-httpd---8*[httpd]

…下略

命令对程序名称相同的会自动合并,所有"|-httpd---8*[httpd]"即表示系统中有8个httpd进程产生的子进程。

9.top命令显示进程

top命令用来显示系统当前的进程状况。

格式:

top[选项]

主要选项如下。

d:

指定更新的间隔,以秒计算。

q:

没有任何延迟的更新。

如果使用者有超级用户,则top命令将会以最高的优先序执行。

c:

显示进程完整的路径与名称。

S:

累积模式,会将已完成或消失的子进程的CPU时间累积起来。

s:

安全模式。

i:

不显示任何闲置(Idle)或无用(Zombie)的进程。

n:

显示更新的次数,完成后将会退出top。

说明:

top命令和ps命令的基本作用是相同的,都显示系统当前的进程状况。

但是top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。

这里结合图4-9来说明它给出的信息。

(点击查看大图)图4-9top命令详解

在图4-9中,第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。

第二行显示的是所有启动的、目前运行的、挂起(Sleeping)的和无用(Zombie)的进程。

第三行显示的是目前CPU的使用情况,包括系统占用的比例、用户使用比例、闲置(Idle)比例。

第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。

第五行显示交换分区的使用情况,包括总的交换分区、使用的、空闲的和用于高速缓存的交换分区。

第六行显示的项目最多,下面列出了详细解释。

PID(ProcessID):

进程标志号,是非零正整数。

USER:

进程所有者的用户名。

PR:

进程的优先级别。

NI:

进程的优先级别数值。

VIRT:

进程占用的虚拟内存值。

RES:

进程占用的物理内存值。

SHR:

进程使用的共享内存值。

STAT:

进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。

%CPU:

该进程占用的CPU使用率。

%MEM:

该进程占用的物理内存和总内存的百分比。

TIME:

该进程启动后占用的总的CPU时间。

COMMAND:

进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。

top命令使用过程中,还可以使用一些交互的命令来完成其他参数的功能。

这些命令是通过快捷键启动的。

空格:

立刻刷新。

P:

根据CPU使用大小进行排序。

T:

根据时间、累计时间排序。

q:

退出top命令。

m:

切换显示内存信息。

t:

切换显示进程和CPU状态信息。

c:

切换显示命令名称和完整命令行。

M:

根据使用内存大小进行排序。

W:

将当前设置写入~/.toprc文件中。

这是写top配置文件的推荐方法。

可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。

但是,它的缺点是会消耗很多系统资源。

10.nice命令改变权限优先级

作用:

nice命令可以改变程序执行的优先权等级。

格式:

nice[-n优先等级][--help][--version][命令]

主要选项如下。

-n优先等级或-优先等级或--adjustment=优先等级:

设置欲执行的命令的优先权等级。

等级的范围从-20~19,其中-20为最高,19为最低。

--help:

在线帮助。

说明:

应用程序优先权值的范围从-20~19,数字越小,优先权就越高。

一般情况下,普通应用程序的优先权值(CPU使用权值)都是0,如果让常用程序拥有较高的优先权等级,自然启动和运行速度都会快些。

需要注意的是普通用户只能在0~19之间调整应用程序的优先权值,只有超级用户有权调整更高的优先权值(从-20~19)。

应用实例如下。

将ls命令的优先序加1并执行,将结果输入文件1.txt:

#nice-n1ls1.txt11.renice命令修改优先级

作用:

renice命令允许用户修改一个正在运行的进程的优先权。

格式:

renicepriority[[-p]pids][[-g]pgrps][[-u]users]

主要选项如下。

priority:

优先等级

-ppids:

改变该程序的优先权等级,此参数为预设值。

-gpgrps:

使用程序群组名称,修改所有隶属于该程序群组的程序的优先权。

-uuser:

指定用户名称,修改所有隶属于该用户的程序的优先权。

说明:

renice命令可重新调整正在执行的程序的优先权等级。

默认是以程序识别码指定程序,调整其优先权,也可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。

等级范围从-20~19,只有超级用户可以改变其他用户程序的优先权和设置负数等级。

普通用户只能对自己所有的进程使用renice命令。

应用实例如下。

将进程PID为987及32的进程与进程拥有者为daemon及root的优先级别号加1:

#renice+1987-udaemonroot-p3212.sleep命令暂停进程

作用:

sleep命令的功能是使进程暂停执行一段时间。

格式:

sleepnumber[选项]

主要选项如下。

number:

时间长度,后面可接s、m、h或d。

s:

以秒为单位。

m:

以分钟为单位。

h:

以小时为单位。

d:

以天为单位。

说明:

如果没有指定时间,以秒为单位。

此命令大多用于shell程序设计中,使两条命令执行之间停顿指定的时间。

应用实例如下。

下面的命令使进程先暂停60秒,然后查看哪个用户登录到系统中:

#sleep60;who13.nohup命令用户退出系统之后继续工作

作用:

nohup命令确保执行程序能在用户退出系统之后继续工作。

格式:

nohup命令

说明:

一般退出Linux系统时,会把所有的程序全部结束掉,包括那些后台程序。

但有时候,例如,用户正在下载一个很大的文件,但是你因下班或有事需要先退出系统,希望退出系统时程序还能继续执行。

这时,我们就可以使用nohup命令使进程在用户退出后仍继续执行。

同时这些进程都在后台执行(命令放到后台运行,nohup必须与&操作同时使用),结果则会写到用户自己的目录下的nohup.out文件里。

应用实例如下。

程序在后台自动执行:

nohupwget-c-t0&

14.pgrep命令

作用:

pgrep命令查找当前运行的进程,并列出匹配给定条件的进程的pid。

所有的条件都必须匹配才会被列出。

使用权限:

所有用户。

格式:

Pgrep[选项][程序名]

选项如下。

-l:

列出程序名和进程ID。

-o:

进程起始的ID。

-n:

进程终止的ID。

应用实例如下。

用户cao查看sshd的进程列表:

[cao@localhost@cao]$pgrep-lsshd829sshd15.chkconfig命令设置系统的各种服务

作用:

chkconfig命令检查,设置系统的各种服务。

格式:

chkconfig[--add][--del][--list][系统服务]

或chkconfig[--level等级代号][系统服务][on/off/reset]

主要选项如下。

--add:

增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。

--del:

删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。

--level等级代号:

指定读系统服务要在哪一个执行等级中开启或关毕。

说明:

chkconfig提供了一个简单的命令行工具用于维护/etc/rc[0-6].d的路径层次,可以帮助系统管理员在这些路径中直接操作符号行,chkconfig的执行是通过chkconfig命令激发的,此命令目前在irix操作系统中存在。

甚至包括了维护/etc/rc[0-6].d层次之外的设置信息。

chkconfig有5个不同的函数:

为管理器添加新服务,从管理器中移出服务,列出当前启动的服务信息,改变服务启动信息,检查特殊服务的启动状态。

这是RedHat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。

应用实例如下。

Chkconfig管理服务技巧

如果你使用chkconfig--list命令,你会看到一个系统服务列表,以及它们在运行级别0~6中已被启动(on)或停止(off)。

在列表末端,你会看到由xinetd管理的服务部分。

如果你使用chkconfig--list来查询由xinetd管理的服务,你会看到xinetd服务是被启用(on)还是被关闭(off)了。

例如,命令chkconfig--listfinger返回了下列输出:

fingeron

如上所示,finger作为xinetd服务被启用。

如果xinetd在运行,finger就会被启用。

如果你使用chkconfig--list来查询/etc/rc.d中的服务,你会看到服务在每个运行级别中的设置。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1