进程管理:
process instance
Memory ,
32bit 4G, 线性内存
PID 进程号
PPID 父进程
进程之间是相互独立的!
每一个进程都需要一个进程的结构体struct!
init,1,fork
数据结构:
struct
进程状态:
running运行
ready就绪
sleep
interrupable 可中断的睡眠
uniterruptable 不可中断的睡眠
stop:阻塞
zombie:僵死
pstree
ps:
BSD
Sysv
a跟终端相关的进程
u显示详细信息
x跟终端无关的进程
aux可以组合起来用!
j显示进程父子关系
STAT:进程状态
R 运行态
S 可中断的睡眠态
D 不可中断的睡眠态
T 停止态
Z 僵死态
< 高优先级的进程
N 低优先级的进程
s 会话进程的发起者
l 多线程的进程
+ 前台进程
ps参数:
-e 选择所有进程
-f 显示详细信息
-ef 组合起来使用 显示所有进程详细信息
两个组合
ps axjf
ps -ejH
-o format 用户自定义显示风格
例子:
ps aox pid,ppid
watch 命令周期显示刷新的结果
watch [-dhvt] [-n <seconds>] [--differences[=cumula-
tive]] [--help] [--interval=<seconds>] [--no-title]
[--version] <command>
eg:
watch -n 1 'ps aox pid' 一秒钟刷新显示命令结果
pgrep PATTERN
NAME
pgrep, pkill - look up or signal processes based on
name and other attributes
SYNOPSIS
pgrep [-flvx] [-d delimiter] [-n|-o] [-P ppid,...]
[-g pgrp,...]
[-s sid,...] [-u euid,...] [-U uid,...] [-G
gid,...]
[-t term,...] [pattern]
pkill [-signal] [-fvx] [-n|-o] [-P ppid,...] [-g
pgrp,...]
[-s sid,...] [-u euid,...] [-U uid,...] [-G
gid,...]
[-t term,...] [pattern]
pidof PATTERN
NAME
pidof -- find the process ID of a running program.
SYNOPSIS
pidof [-s] [-c] [-x] [-o omitpid] [-o omitpid..]
program [program..]
kill -l 查看信号
man 7 signl 查看信号
signal
1)SIGHUP 让进程或服务重读其配置文件却不用重启
2)SIGINT ctrl + c
9) SIGKILL 强制杀死进程
15)SIGTERM 终止进程
18) SIGCONT 继续进程
19) SIGSTOP 停止进程
使用方法:
kill -SIGTERM/-15 PID
例子:
kill -SIGTERM/-15 3133
killall -9 command (-9=SIGKILL)
即:killall -SIGKILL command 强制杀死进程
pkill -SIGNAL [options] PATTERN
process ,优先级
优先级决定了进程获得的时间片长短!
静态优先级,手动调整的
动态优先级,系统内核计算得来的
cpu密集型进程,优先级较I/O稍低,但是它获取的时间片较长
I/O密集型进程,优先级稍高,但是的获取的时间片较短
静态优先级的调整是通过nice值来调整的;
nice值:-20 -- 19 :共40个值
优先级:139 --100 :共40个值
nice数值越大优先级越低!
默认值的nice为0 对应的优先级值为120!
普通用户只能将自己的nice值调高,即降低自己的优先级!
nice -n # command 指定一个将要启动的nice值
( #为某数值 )
renice # PID 调整一个已经起来的nice值
ps -eo comm ,nice ,pid
查看命令的nice 值和PID
eg:
[root@localhost wangzhen]# ps -eo pid,nice,command
PID NI COMMAND
1 0 init [5]
2 - [migration/0]
3 19 [ksoftirqd/0]
4 - [watchdog/0]
5 - [migration/1]
6 19 [ksoftirqd/1]
7 - [watchdog/1]
8 -5 [events/0]
9 -5 [events/1]
renice 5 2232
重新指定一个已经起来的进程的nice值
nice -n -5 ftp 172.16.0.1
手动指定一个新的ftp进程的nice 值为-5
作业和进程
job
前台作业:执行开始后结束之前始终占据了命令提示符的进程
后天作业:当进程开始后会立即释放命令提示符,无论此进程是否结束
前台-->后台:ctrl + Z
后台-->前台:fg
jobs 可显示后台中挂起的作业
[2] vim sh.txt
fg %2 调出2号特定作业(%可省略)
bg #(#为jobs中的后台作业号),可以将此项作业调用至后台中运行;
kill %# 这里的%不可省略,用来删除此项后台作业进程!
nohup command & 进程跟终端无关,启动后直接送到后台运行;
进程查看命令:
top
top -d 10 延迟10秒钟刷新显示进程
eg:
[root@localhost ~]# top -d 10
top - 01:20:35 up 20:29, 2 users, load average: 0.03, 0.01, 0.00
Tasks: 122 total, 1 running, 121 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.5%sy, 0.0%ni, 97.3%id, 0.2%wa, 0.0%hi, 1.7%si, 0.0%st
Mem: 255368k total, 239800k used, 15568k free, 6432k buffers
Swap: 522104k total, 132k used, 521972k free, 93036k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3585 dbus 18 0 13124 1200 864 S 1.9 0.5 0:06.69 dbus-daemon
数字1键 可以显示cpu个数;
m键 按照内存的使用排序
P键 按照cpu占据的百分比 排序
-b -n 3
-b 表示在批处理模式下,-n 3表示在批处理模式下刷新采样113次