进程管理

 进程管理:

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次

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章