进程:是操作系统中的一种抽象概念,用来表示正在运行的程序
进程有多个属性参数:PID、PPID、UID、GID等
例子:手动创建一个
后台程序,并通过
kill杀死它,前台程序可以Ctrl+C杀死
1.在主目录中用文本编辑器创建一个名为badpro的文本文件,包含如下内容:
#! /bin/bash
while echo "I'm making files!!!"
do
mkdir adir
cd adir
touch afile
sleep 2s(不能忘,否则,必须使用rm -fr adir来删除这些“垃圾”目录)
done
2.将这个文件加上可执行权限,并从后台执行。
chmod +x badpro
./badpro & (将命令放到一个工作队列中,可以用命令“jobs”查看)
3.程序运行起来了,运行ps命令查看这个程序的PID号(PID号用于唯一表示一个进程);
ps aux
| grep badpro
ps 查看所有运行的程序
ps -aux ##可以看到所有运行的程序与
grep连用筛选
ps -a ##显示现行终端机下的所有程序(包括其他用户的程序)
ps -u ##以用户为主的排序显示(username)
ps -x ##显示所有程序(包括所有终端机下的)
4.使用kill命令“杀死“这个进程。
kill 12794 ( PID );
5.回到运行badpro的终端,可以看程序已被终止,最后删除建立的目录和文件
rm -r adir
1.查看所有运行的程序:ps
ps -aux ##可以看到所有运行的程序与
grep连用筛选
ps -a ##显示现行终端机下的所有程序(包括其他用户的程序)
ps -u ##以用户为主的排序显示(username)
ps -x ##显示所有程序(包括所有终端机下的)
ps aux | grep badpro ##筛选出带有badpro关键字的进程
("-"可以省略)
ps lax ##可以提供进程ID(PPID父进程)和 谦让度(NI)不需要显示属主用户名,所以速度更快
ps zux 命令产生进程信息的各种字段含义:
字段 | 含义 |
USER | 进程创建者的用户名 |
PID | 进程的ID号 |
%CPU | 进程占用的CPU百分比 |
%MEM | 进程占用的内存百分比 |
VSZ | 进程占用的虚拟内存的大小 |
RSS | 内存中页的数量(页是管理内存的单位,在PC上通常为4K |
TTY | 进程所在终端的ID号 |
STAT |
进程状态,常用的字母代表含义如下:
R 正在运行/可运行 D 睡眠中(不可被唤醒,通常是等待I/O设备)
S 睡眠中(可以被唤醒) T 停止(由于收到信号或被跟踪)
Z 僵进程(已经结束而没有释放系统资源的进程)
常用的附加标准:
< 进程拥有比普通优先级高的优先级
N 进程拥有比普通优先级低的优先级
L 有些页面被锁在内存中
s 会话的先导进程
|
START | 进程启动的时间 |
TIME | 进程已经占用的CPU时间 |
COMMAND | 命令的参数 |
2.即时跟踪进程信息:top
top ##命令显示的信息会占满一页,并且在默认情况下每10s更新一次。那些使用CPU最多的程序会排在最前面。
q ##退出
3.查看占用文件的进程:lsof
lsof database.doc
4.向进程发送信号:kill(只是用来向进程发送一个信号)
kill [-signal] pid
kill pid 等同于
kill -TERM pid 或
kill -SIGTERM pid 或
kill -15 pid(SIG可以省略)
kill -INT 等同于快捷键
Ctrl+C
常用的信号
信号编码 | 信号名 | 描述 | 默认情况下执行的操作 |
0 | (SIG)EXIT(SIG可以省略) | 程序退出时收到该信号 | 终止 |
1 | (SIG)HUP | 挂起 | 终止 |
2 | (SIG)INT | 中断 | 终止 |
3 | (SIG)QUIT | 退出 | 终止 |
9 | (SIG)KILL | 杀死 | 终止 |
11 | (SIG)SEGV | 段错误 | 终止 |
15 | (SIG)TERM(默认,不写) | 软件终止 | 终止 |
取决于硬件体系 | USR1 | 用户定义 | 终止 |
取决于硬件体系 | USR1 | 用户定义 | 终止 |
注意:在程序的开头加入命令“
trap "" TERM”用于忽略TERM信号,如下:
#! /bin/bash
trap "" TERM
while echo ... ...
但是
KILL信号是永远不会被程序
捕获的,可以用该信号结束进程
5.调整进程的谦让度:nice 和 renice
谦让度 IN 的范围:-20~+19
nice命令可以在启动程序时设置其谦让度,设置
相对值
renice命令可以在进程运行时调整其谦让度,设置
绝对值
nice -n 2 bc ##设置bc以谦让度
增量2 启动
nice bc ##不带-n时,会将程序的谦让度
增量设置为
10
renice +12
-p [PID] ##将bc的
,
-p 选项指定进程的PID
6./PROC文件系统
/PROC目录下存放着
内核有关系统状态的各种有意义的信息。在系统运行时,内核会随时向这个目录写入数据。ps和top命令就是从这个地方读取数据的。事实上,这是操作系统向用户提供的一条通往内核的通道,用户甚至可以通过向/proc目录下的文件写入数据来修改操作系统参数