進程管理

 進程管理:

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次

 

 

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