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

【Linux学习笔记六】进程管理

2016-05-03 16:17 1401 查看
【注】文章中的所有截图均为centos下实验结果,亲测命令正确= ̄ω ̄=

[b]【参考资料】《Linux从入门到精通(第2版)》刘忆智
等编著
[/b]

1、一个小实验:结束一个失控的程序

主目录中用文本编辑器创建一个名为badpro的文本文件,内容如下:

#! /bin/bash
while echo "I'm making files!!"
do
mkdir adir
cd adir
touch afile
sleep 2s##非常重要,使得程序每次建立后“休息”2s,比较温和
done


$ chmod +x badpro##为程序加上可执行权限
$ ./badpro &
##后台运行


$ ps aux | grep badpro##通过ps命令查看进程的PID号(唯一标识一个进程)。用管道方式获取并查看,第二个字段为进程号
$ kill 12974
##根据进程号杀死进程


$ rm -r adir##删除创建的目录和文件

2、什么是进程
进程是操作系统的一种抽象概念,用来表示正在运行的程序。内核中重要的进程信息包括:进程的内存地址、进程的当前状态、进程正在使用的资源、进程的优先级(谦让度)、进程的属主。
[b]【转载请注明文章出处:http://blog.csdn.net/iamthezbl/article/details51305604

[/b]

3、进程的属性
PID:进程的ID号,Linux不仅自己使用PID来确定进程,还要求用户在管理进程时也要提供相应的PID号。

PPID:父进程的PID,几乎所有的进程由另一个进程创建,创建该进程的进程称为父进程。应用程序只能通过克隆自己产生新进程。

UID和EUID:真实和有效的用户ID,标注了进程的属主和访问权限

GID和EGID:进程创建者所属的组,当进程创建一个新文件时,该文件采用进程的GID。

谦让度和优先级:谦让度为优先级的相反概念,可以由用户设置。

4、进程监视:ps命令

$ ps aux##显示当前系统上运行的所有进程的信息,每个字段的含义如下:



USER:进程创建者的用户名

PID:进程的ID号

%CPU:进程占用的CPU百分比

%MEM:进程占用的内存百分比

VSZ:进程占用的虚拟内存大小

RSS:内存中页的数量(页是管理内存的单位)

TTY:进程所在终端的ID号

STAT:进程的状态,包含字母和附加标志:

字母:

R:正在运行/可运行

D:睡眠中,不可被唤醒,通常是在等待I/O设备

S:睡眠中,可以被唤醒

T:停止

Z:僵进程,已经结束而没有释放系统资源

附加标志:

<:进程拥有比普通优先级高的优先级

N:进程拥有比普通优先级低的优先级

L:有些页面被锁在内存中

s:会话的先导进程

START:进程启动的时间

TIME:进程已经占用的CPU时间

COMMAND:命令和参数

$ ps lax##提供父进程ID
PPID 和谦让度 NI


【转载请注明文章出处:http://blog.csdn.net/iamthezbl/article/details51305604

5、即时跟踪进程信息:top命令

$ top##默认10s刷新一次,占用CPU最多的进程会排在最前边,使用
q 命令退出



6、查看占用文件的进程:lsof

$ lsof database.doc##正在使用database.doc进程的相关信息


不带任何参数的lsof命令会列出当前系统中所有打开文件的进程信息。要找出占用某个特定文件的进程,需要提供文件名为参数。

7、向进程发送信号:kill
kill命令的标准语法:kill [-signal] pid(pid为进程号)



$ kill -l##显示所有的信号及编号


常用的信号(信号名前可以加 SIG也可以不加):


EXIT:程序退出时收到该信号
HUP:挂起
INT:中断
QUIT:退出
KILL:杀死
SEGV:段错误
TERM:软件终止
USR1:用户定义
默认的情况下kill命令向进程发送TERM信号,这个信号表示终止某项操作,以下几句命令等价:
$ kill 12974


$ kill -TERM 12974


$ kill -SIGTERM 12974


快捷键Ctrl+C对应于信号INT。


如果程序中加入“trap "" TERM”用于忽略TERM信号,则该程序不能被 kill - TERM结束。
-KILL永远不能被捕捉,可以在内核级别杀死进程。
也有一些程序不能被KILL信号杀死,只能重新启动系统。
[b]【转载请注明文章出处:http://blog.csdn.net/iamthezbl/article/details51305604

[/b]

8、调整进程的谦让度:nice和renice
高谦让度意味着低优先级,谦让度可以为负数。



$ nice##查看默认谦让度值

$ nice -n 2 bc##设置bc的谦让度以默认值上增量2启动,是启动时相对值的调整


$ sudo nice -n -3 bc##设置bc的谦让度以默认值上增量-3启动


$ renice +12 -p 8567##-p选项指定进程的PID,将运行中的进程8567谦让度调整为12,是运行时绝对值的调整


如果用户不采取行动,新进程从父进程继承谦让度。进程的属主可以提高谦让度,但不能降低谦让度。root用户可以任意设置,所以上述语句中-3要用sudo语句。



9、/PROC文件
该目录下存放着内核有关系统状态的各种有意义的信息。

$ ls /proc/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: