歡迎您光臨本站 註冊首頁

linux 進程管理實例

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

進程管理:
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次


[火星人 ] linux 進程管理實例已經有490次圍觀

http://coctec.com/docs/linux/show-post-47055.html