【注】文章中的所有截图均为centos下实验结果,亲测命令正确= ̄ω ̄=
【参考资料】《Linux从入门到精通(第2版)》刘忆智 等编著
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、什么是进程
进程是操作系统的一种抽象概念,用来表示正在运行的程序。内核中重要的进程信息包括:进程的内存地址、进程的当前状态、进程正在使用的资源、进程的优先级(谦让度)、进程的属主。
【转载请注明文章出处:http://blog.csdn.net/iamthezbl/article/details51305604】
3、进程的属性
PID:进程的ID号,Linux不仅自己使用PID来确定进程,还要求用户在管理进程时也要提供相应的PID号。
PPID:父进程的PID,几乎所有的进程由另一个进程创建,创建该进程的进程称为父进程。应用程序只能通过克隆自己产生新进程。
UID和EUID:真实和有效的用户ID,标注了进程的属主和访问权限
GID和EGID:进程创建者所属的组,当进程创建一个新文件时,该文件采用进程的GID。
谦让度和优先级:谦让度为优先级的相反概念,可以由用户设置。
$ ps aux ##显示当前系统上运行的所有进程的信息,每个字段的含义如下:
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】
$ top ##默认10s刷新一次,占用CPU最多的进程会排在最前边,使用 q 命令退出
$ 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信号杀死,只能重新启动系统。
【转载请注明文章出处:http://blog.csdn.net/iamthezbl/article/details51305604】
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/