您的位置:首页 > 运维架构 > Linux

linux下进程管理

2009-07-04 12:03 169 查看
.主要内容:
–查看进程状态
–进程的挂起和恢复
–杀死进程
–改变运行优先级


PATH环境变量
.系统中每个用户都有PATH环境变量,该变
量用来记录命令的查找路径,当用户输入命
令时,shell会从PATH设置的路径从左至右
查找,找到后执行,如果找不到会报错。
.系统中用户有默认的环境变量,也可以根据
实际情况自己改变。


PATH环境变量


PATH环境变量
除了系统自带的应用程序之外运行的程
序,通常不包含在PATH环境变量中,通常
指定相对路径或绝对路径来运行。

进程管理
.相关概念

–程序:一个静态的计算机指令集合
–进程:在自己独立虚拟地址空间运行中的程序
或子程序——进行中的程序
–作业:为了达成一定任务而执行的一个或多个
进程
–作业控制:控制运行中的进程的行为

进程管理
什么是进程呢??
.程序是静态的(那些可执行程序)
.程序的动态执行就会产生进程!
.系统会给每个进程一个pid!


进程管理
.所有进程都是由init进程产生的,init进程号
恒为1。
.在每个进程执行过程中,用户可以任意挂
起、结束进程。


查看进程状态
如果打算管理进程,我们需要知道如何查看
进程,只有这样才可以去管理我们的进程。
.什么是父进程?什么是子进程?
.子进程是由父进程执行而得到的一个程序,
当子进程死掉的时候,父进程通常不会受到
影响,但是当父进程死掉的时候,则所有的
子进程将一起结束!


查看进程状态
.ps查看当前进程的状态(process
status)
.常用选项:

a:显示终端上的所有进程,包括其他用户的进程
u:显示执行这个进程的用户
x:显示所有不在当前终端下的进程,即显示所有
其它终端的进程
r:只显示正在运行的进程

查看进程状态
.-e:显示所有进程
.-f:显示完整列表
.-l:长格式显示,包括进程号、父进程号
.-h :不显示标题


查看进程状态


查看进程状态
.输出结果说明:
.USER:进程拥有者
.PID:进程号(1-32768)
.PPID:父进程的进程号
.%CPU:占用的CPU使用率
.%MEM:占用的内存使用率
.VSZ;占用的虚拟内存大小
.RSS:占用的内存大小
.TTY:进程启动的终端
.STAT:该进程当前状态
.START:进程开始时间
.TIME:该程序的运行时间
.COMMAND:进程的命令名


查看进程状态
.STAT:

D:不可中断的休眠状态,即正执行IO操作的进程
R:该进程正在运行
S:休眠状态,即没有执行
Z:死掉的进程(僵尸进程)
W:没有足够的内存页分配
N:低优先级的进程
<:高优先级的进程
T:停止状态

查看进程状态
.TTY:
.tty为本地终端
.pts为X或远程终端
.?在后台运行


查看进程状态
.ps应用实例

# ps 查看隶属于自己的进程
# ps -u 查看隶属于自己进程详细信息
# ps aux 查看所有用户执行的进程的详细信息
# ps -aux | grep konsole查看指定进程信息
# ps -u sam查看系统中指定用户执行的进程

后台进程
.后台运行:
.当输入的指令带有&的时候,将把它带入后台中运
行,也就是说执行这个命令之后,在这个终端,仍
可以做其他的工作!而这个指令执行之后,系统
将会在您的终端显示完成的消息!
.语法:

#command&
.如果要让屏幕中的工作在背景中执行,就用&吧!


后台进程
.也可以用ctrl+z来将目前的工作丢到后台
中,也就是将进程挂起。
.语法:

#command &
#ctrl+Z
.注意此时的状态是stop(T)
.那么怎么将他们调回来呢??


后台进程
.jobs 查看后台任务
.语法:

#jobs
.这样我们就知道背景中有几个工作了,注意[ ]
里面的数字就是jobs的代号,后面是进程当
前的状态


后台进程
.fg(调入前台) 与bg(置入后台)
.语法:
.#bg number:恢复后台挂起的进程,就是将后
台中挂起的程序变成后台执行,这个bg是将背景
中的程序由stopped变成running的一个手段
.#fgnumber:恢复后台的进程到前台,是将后
台中的程序移到前台执行
.number:jobs的代号

那你怎么知道你的后台当中有多少的进程在运
行?就是用jobs!然后就可以用fg,bg了!

后台进程
.格式:
.nohup cmd &
.退出终端控制台后,程序仍能在后台继续
运行。


Linux系统的进程和文件系统一样,都是一条树
型的结构,所以可以使用pstree命令,让进程以树型
结构显示出来。这样看起来,子父进程间的关系就更
加明确了。以下是pstree常用的一些选项。
-u在进程名旁显示进程所属的用户名。
-p在进程名旁显示PID。
-a显示进程的详细信息。
查看进程状态

查看进程状态
.top命令和ps命令基本作用相同,显示系统当前的
进程和其他状况;但top是一个动态显示过程,它
提供了实时的对系统处理器、内存、执行时间的
动态监视。(每5秒更新一次)
.格式:#top
.选项:

h帮助
s设置刷新时间,单位为秒
q 退出界面

查看进程状态
.#top 命令会显示下面的输出


查看进程状态
.输出结果说明:
.processes自最近一次刷新以来的运行进程总数,
包括正在运行的、休眠的、停止的。
.CPU status显示用户模式、系统模式、优先级进
程和闲置等各种情况所占用CPU时间百分比。
.Mem内存使用情况统计:可用内存、空闲内存、
已用内存、共享内存和缓存所占内存情况。
.Swap交换空间统计,包括:总的交换空间、可用
交换空间、已用交换空间。


查看进程状态
.PID:每个进程的ID
.USER :每个进程所有者的用户名
.PRI :这个程序可被执行的优先级,越小就越早执行
.NI :该进程的优先级,即nice值
.SIZE :该进程大小,单位KB
.RSS :该进程占用的物理内存的总数量,单位KB
.SHARE :该进程使用共享内存的数量
.STAT :该进程的状态
.%CPU :代表该程序使用多少cpu;
.%MEM :代表该程序使用了多少的内存;
.TIME :进程自从启动以来启用CPU的总时间
.COMMAND :该进程的命令名称


查看进程状态
.快捷键:
.M根据驻留内存大小进行排序
.P根据CPU使用百分比大小进行排序
.T由启动的时间排序
.q退出程序


终止进程
.当需要中断一个前台进程的时候,通常是
使用Ctrl+C组合键;但是对于一个后台进
程恐怕就不是一个组合键所能解决的了,
这时就必须求助于kill命令。该命令可以
终止后台进程。至于终止后台进程的原因
很多,或许是该进程占用的CPU时间过多;
或许是该进程已经挂掉,无法正常退出等
等。总之这种情况是经常发生的。


终止进程
.命令格式:
.kill -9 pid:强制终止进程
.pkill 进程名
.killall 进程名:杀死指定名称的所有进程

示例:killallvim
killall可以不用找出PID,直接加上CMD就
可杀除进程,但是,也有些缺点,它会把
任何同名的程序全部删除。

改变进程的优先级
.nice
–指定程序的运行优先级
–格式:nice –n command
–例如:nice -5 myprogram&
.renice
–改变一个正在运行的进程的优先级
–格式:renice n pid
–例如:renice -5 777


改变进程的优先级
* 优先级取值范围为(-20,19)*
.只有具有root权限的用户可以将程序的nice
值调为负值(当nice为负值时,该程序会提
前执行,即提高了程序处理的优先顺
序),所以,对于nice值有如下约定:
.一般用户可用的nice值为0—19
.root管理员可用的nice值为-20—19


一些查看系统信息的命令
.who & w
.语法:
.#who显示目前登入系统的用户信息
.#w
.w显示信息的含义
–JCPU:以终端代号来区分,该终端所有相关的
进程执行时,所消耗的CPU时间会显示在这里
–PCPU:CPU执行程序耗费的时间
–WHAT:用户正在执行的操作


一些查看系统信息的命令
–FROM:显示用户从何处登录系统,“:0”的显示
代表该用户是从X Window下,打开文本模式窗
口登录的
.查看指定的用户信息:w 用户名


一些查看系统信息的命令
.whoami

显示自身的用户名称,本指令相当于执行
"id-un"指令
.语法:

#whoami
.如果你在su与sudo的时候经常迷失自己,
那好你可以用whoami来查询


一些查看系统信息的命令
.free显示内存状态
.语法:

#free
.参数说明:

-k:以KB来显示RAM使用情况;
-m:以MB来显示RAM使用情况;

一些查看系统信息的命令
.dmesg显示开机信息
.语法:

#dmesg
.说明:

kernel会将开机信息存储在ringbuffer中。
您若是开机时来不及查看信息,可利用
dmesg来查看。开机信息亦保存在/var/log
目录中,名称为dmesg的文件里。

一些查看系统信息的命令
.uptime
.语法:

#uptime
.说明:

想知道你的linux主机开机多久了吗??

一些查看系统信息的命令
.last列出目前与过去登入系统的用户相关信息
.参数说明:

-number :number为数字,如果您的登入信息
太多,可以使用这个选项
.例子:

#last –5
.ftp、telent、ssh都会记录在这个信息中!不过只
有最近一个月的!


本文出自 “butter520” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: