进程管理:
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 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN
35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4
39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
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次