linux進程管理

Linux內核:搶占式多任務

進程類型:

1、守護進程:在系統引導過程中啟動的進程,與終端無關的進程;

2、前臺進程:跟終端相關,通過終端啟動的進程,注意:也可把前臺啟動的進程送往后臺,以守護模式運行;

 

進程狀態:

運行態:running

就緒態:ready

睡眠態:a、可中斷:interruptable;b、不可中斷:uninterruptable

停止態:暫停于內存中,但不會被調度,除非手動啟動之:stopped

僵死態:zombie

 

進程分類:

1、CPU-Bound:CPU密集型

2、IO-Bound:IO密集型

 

Linux進程查看及管理工具:pstree、ps、pgrep、pidof、top、htop、glance、pmap、vmstat、dstat、kill、pkill、job、bg、fg、nohup;

 

pstree – display a tree of processes;以樹狀顯示進程

 

ps:顯示進程狀態

ps [options]…

選項:支持兩種風格

常用組合:aux

u:以用戶為中心組織進程狀態信息顯示

a:與終端相關的進程

x:與終端無關的進程

# ps uax
USER ? ? ? PID ? ? ?%CPU ? ? %MEM ? ? VSZ ? ? ? RSS ? ? TTY ? ? ? ?STAT ? ? ?START ? ? ? ? TIME ? ? ? COMMAND

VSZ:virtual memory size;虛擬內存集

RSS:resident size;常駐內存集,即不能被交換至交換分區的

STAT:進程狀態

R:running

S:interruptable sleeping

D:uninterruptable sleeping

T:stopped

Z:zombie

+:前臺進程

l:多線程進程

N:低優先級進程

<:高優先級進程

s:session leader

 

常用組合:-ef

-e:顯示所有進程相當于ps ax;

-f:顯示完整格式的進程信息;

常用組合:-eFH

-F:顯示更完整格式的進程信息;

-H:以進程層級格式顯示進程相關信息

常用組合:-eo,axo

-o:以自定義指定字段顯示

-eo ? ? ?pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
axo ? ? stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

ni:nice值;

pri:優先級;

psr:運行于哪顆cpu;

rtprio:實時優先級;

ppid:父進程;

 

pgrep,pkill:

pgrep ? [options] ? pattern
pkill ? [options] ? pattern

-U uid:真實用戶

-u uid:有效用戶

-t terminal:與指定終端相關的進程

-l:顯示進程名

-a:顯示完整格式的進程名

-P pid:顯示其父進程為此處指定進程的進程列表

 

pidof:根據進程名獲取其pid

 

top:有許多內置命令:

排序:P:占據CPU時間百分比;

M:占據的內存百分比;

T:累計占據cpu時長;

首部信息顯示:

l:uptime信息;

t:任務及cpu信息;

1:cpu分別顯示;

m:內存信息;

q:退出命令;

s:修改刷新時間間隔;

k:kill,終止指定進程

其中cpu信息中各子項的意義:

us:用戶空間

sy:內核空間

ni:nice值

id:空閑比例

wa:等待io完成

hi:處理硬件中斷

si:處理軟件中斷

st:被虛擬化技術偷走的時間

 

htop命令:

s:跟蹤選定進程的系統調用;

l:顯示選定進程打開的文件列表;

a:將選定進程綁定至某指定cpu核心;

t:顯示進程樹;

 

vmstat:報告虛擬內存的使用信息

vmstat [options] [delay [count]]

procs ? ? {r:等待運行的進程的個數;

b:處于不可中斷睡眠態的進程個數(被阻塞的隊列的長度);}

memory ? {swpd:交換內存的使用總量;

free:空閑物理內存總量;

buff:用于buff的內存總量;

cache:用于cache的內存總量}

 

swap ? {si:數據進入swap中的數據速率(kb/s)

so:數據離開swap中的數據速率(kb/s)}

 

io ? {bi:從塊設備讀入數據到系統的速率(kb/s)

bo:保存數據至塊設備的速率(kb/s)}

 

system ? {in:中斷速率

cs:進程切換的速率}

 

cpu ? {us:用戶空間

sy:內核空間

id:空閑比例

wa:等待io完成所消耗的時間比例

st:被虛擬化技術偷走的時間比例}

 

選項:

-s:顯示內存的統計數據

 

pmap – report memory map of a process:顯示指定進程ID號的內存映射關系

選項:

-x:顯示詳細格式的信息;

其真實文件保存在:/proc/PID/maps;

 

glances – A cross-platform curses-based system monitoring tool:跨平臺的基于指針的系統監控工具

內建命令:h:獲取幫助

C/S模式下運行glances命令:適合于內網監控。

服務端模式:glances -s -B IPADDR

客戶端模式:glances -c IPADDR

 

dstat – versatile tool for generating system resource statistics:用于生成系統資源統計信息的萬能工具

dstat [-afv] [options..] [delay [count]]

常用選項:

-c:cpu相關信息;

-C #,#,…,total

-d:硬盤相關信息;

-D total,sda,sdb,…

-g:顯示page相關統計數據

-m:顯示內存相關統計數據

-n:顯示network相關統計數據

-p:顯示process相關統計數據

-r:顯示IO相關統計數據

-s:顯示swapped相關統計數據

–tcp:顯示tcp協議

–udp:顯示udp協議

–raw:顯示raw

–socket:顯示tcp、udp、socket等等

–ipc:顯示進程間通訊

–top-cpu:顯示最占用cpu的進程

–top-io:顯示最占用io的進程

–top-mem:顯示最占用內存的進程

–top-latency:顯示延遲最大的進程

 

kill命令:向進程發送控制信號,以實現對進程管理;

顯示當前系統可用控制信號:1、kill -l;2、 man 7 signal

常用控制信號:

1) SIGHUP:無需關閉進程而讓其重讀配置文件;

2) SIGINT:中止正在運行的進程;相當于Ctrl+c;

9) SIGKILL:殺死正在運行的進程;

15) SIGTERM:終止正在運行的進程;

18) SIGCONT:讓停止態的進程運行;

19) SIGSTOP:讓進程處于停止態;

kill [-s signal|-SIGNAL] pid…

 

終止“名稱”之下的所有進程;

killall?[-s signal|-SIGNAL] pid…

 

Linux系統作業控制:

job:

前臺作業(foregroud):通過終端啟動,且啟動后會一直占據終端;

后臺作業(background):可以通過終端啟動,但啟動后即轉入后臺運行(釋放終端);

如何讓作業運行于后臺?

(1)運行中的作業

Ctrl+Z ? 注意:送往后臺后,作業會轉為停止態;

(2)尚未啟動的作業

# COMMAND & ? ? 注意:此類作業雖然被送往后臺,但其依然跟終端相關;如何希望送往后臺的作業剝離與終端的關系: # nohup COMMAND &

查看所有的作業列表:jobs

可實現作業控制的常用命令:

# fg [%] 作業號:把指定的作業調回前臺;

# bg?[%] 作業號:讓送往后臺的作業在后臺繼續運行;

# kill?% 作業號:終止對應的作業;

 

調整進程優先級:

可通過nice值調整的優先級范圍:100-139;分別對應于:-20,19

進程啟動時,其nice值默認為0,其優先級為120;

nice命令:以指定的nice值啟動并運行命令;

nice [OPTION] [COMMAND [ARG]…]

選項:-n NICE

注意:僅管理員可調低nice值;

 

renice [-n] NICE pid…:調整正在運行進程的nice值

查看NICE值和優先級:

# ps axo pid,ni,priority,comm

未涉及的命令:sar,tsar,

 

網絡客戶端工具:

ping、lftp、ftp、lftpget、wget等

ping [option]?destination

-c #:發送的ping包個數;

-w #:ping命令超時時長

-W #:一次ping操作中,等待對方響應的超時時長;

-s #:指名ping包報文大??;

 

hping命令:

–fast

–faster

–flood

-i ux

 

traceroute命令:跟蹤從源主機到目標主機之間經過的網關;

 

ftp命令:ftp服務命令行客戶端工具;

 

lftp [-p port] [-u user[,pass]] [site]

get,mget

put,mput

rm,mrm

 

wget [option]… [URL]…

-b:在后臺執行下載操作;

-q:靜默模式,不顯示下載進度;

-O file:下載文件的保存位置;

-c:續傳;

–limit-rate=amount:以指定的速率傳輸文件;

 

bash編程:

順序執行:

選擇執行:if,case

循環執行:for,while,until

 

for循環格式:

for VARAIBLE in LIST;do

循環體

done

 

while循環格式:

進入循環條件:CONDITION測試為“真”;

退出循環條件:CONDITION測試為“假”;

while CONITION;do

循環體

循環控制變量修正表達式

done

 

until循環格式:

進入循環條件:CONDITION測試為“假”;

退出循環條件:CONDITION測試為“真”;

until CONITION;do

循環體

循環控制變量修正表達式

done

例子:打印九九乘法表

#!/bin/bash
#
for j in {1..9};do
for i in $(seq 1 $j);do
echo -n -e “${i}x${j}=$[${i}*${j}]\t”
done
echo
done

 

 

 

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91504

(1)
N26-深圳-城市蝸牛N26-深圳-城市蝸牛
上一篇 2018-02-08 09:39
下一篇 2018-02-08 16:57

相關推薦

  • Linux的常用的計劃任務(一次任務與周期性任務) at & cron

      在Linux日常維護工作中,維護員不可能每時每刻都守在服務前前,但如果遇到例行的操作要進行怎么辦?設定計劃任務!?     Linux任務計劃、周期性任務執行     ? 未來的某時間點執行一次任務:      &n…

    Linux干貨 2016-09-09
  • Linux運維學習歷程-第十天-文件查找工具

    概述:本篇主要講解locate命令和find命令,來幫助我們在linux中完成文件查找,方便我們快速定位文件。 一、文件查找    即在文件系統上查找符合條件的文件,常用工具有locate和find  1、locate命令    locate命令其實是find -name的另一種寫法,但是要比后者快得多,原因…

    Linux干貨 2016-08-21
  • bash的基本特性之globbing,IO重定向及管道

    bash的基本特性之globbing,IO重定向及管道 giobbing:文件名通配 在bash的操作環境中有一個分廠有用的功能那就是gilobbing:文件名通配,這樣我們在處理數據的時候就更方便了。下面我們來羅列一些常用的通配符。(注:globbing是做整體的文件名匹配而非部分) 匹配模式:元字符 *:表示匹配任意長度的任意字符  &nbsp…

    Linux干貨 2016-12-19
  • keepalived雙主模型的實現

    一、簡介  keepalived 簡介:是服務器高可用的一個重要軟件,它的核心組件有vrrp ,stack, checker ,ipvs, warpper, watch dog  它是vrrp協議的實現,原生設計目的為高可用ipvs服務;keepalived能夠通過配置文件中定義生成ipvs規則 并能夠對RS的健康狀態進行檢測;vrrp_…

    Linux干貨 2016-08-30
  • 第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次既可。 [root@director ~]# who | cut -d' ' -f 1 | sort | uniq &nbsp…

    Linux干貨 2016-12-13
  • 系統啟動和內核管理(一)

    系統啟動和內核管理(一)   (以CentOS5/6為例) 一、Linux的組成: 1、Linux:kernel+rootfs kernel:進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能。 rootfs:程序和glibc 庫:函數集合,function,調用接口(頭文件負責描述); 過程調用,procedure,無返回值; 函數調用,…

    Linux干貨 2016-09-10
欧美性久久久久