Linux進程管理-初級

Linux進程管理-初級

背景:

在學習完Linux進程管理后,發現這一塊的知識點比較多,很多都是自己以前沒有接觸過的,而且這部分知識對今后的工作有很大幫助,在這里做個學習的總結,供以后復習。

進程介紹:

什么是進程

進程(Process):運行中的程序的一個副本,是被載入內存的一個指令集合,進程有進程ID(Process ID,PID),用來標記每個進程,UID、GID和SELinux語境決定對文件系統的存取和訪問權限,通常從執行進程的用戶來繼承,進程是存在生命周期的。

Linux系統中 init(CentOS7名字發生了變化) 是系統的第一個進程,進程都是由父進程創建,他們之間是父子關系

進程優先級

進程優先級分為系統優先級、實時優先級和nice值

系統優先級:數組越小優先級越高,CentOS4、5是從0-139,一共140個優先級;CentOS6、7是從0-98,99,一共100個優先級

實時優先級:從99-0,值越大優先級越高

nice值是從-20到19,對應系統優先級100-139或99

進程狀態

進程類型:

進程分為守護進程:daemon,在系統引導過程中啟動的進程,和終端無關進程

前臺進程:跟終端相關,通過終端啟動的進程

這兩者是可以相互轉化的

進程狀態:

R :運行態:running

就緒態:ready

睡眠態:

            S 可中斷:interruptable

            D 不可中斷:uninterruptable

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

Z 僵死態:zombie,指子進程退出時,父進程并未對其發出的SIGCHILD信號進行適當處理,導致子進程停留在僵死狀態等待其父進程為其收尸,這個狀態下的子進程就是僵死進程。

+:前臺進程

l:多線程進程

L:內存分頁并帶鎖

N:低優先級進程

<:高優先級進程

s:session leader,會話(子進程)發起者

ps命令:

          查看進程命令:ps

          ps 支持三種選項:

                UNIX選項: 如-A -e

                BSD選項: 如a

                GNU選項: 如–help

          ps選項:默認是顯示當前終端中的進程

                a 所有終端中的進程

                x 不鏈接終端的進程

                u 顯示進程所有者的信息

                f 顯示進程的父進程

                k|–sort 對屬性排序

                o 顯示定制的信息 (包括:pid、comm、%cpu、%mem、state、tty、euser進程發起者、ruser真正執行者等)

例子1:

Linux進程管理-初級

例子2:

Linux進程管理-初級

最靈活使用:ps 選項 | 其他命令  (通過管道多查到的進程在篩選,如:ps aux | grep httpd)

pgrep命令:

pgrep [options] pattern

選項:

-u uid:effective user,生效者

-U uid:real user,真正發起運行命令者

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

-l :顯示進程名

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

-P pid:顯示指定進程的子進程

查看具體某個進程的進程id

pidof命令:

pidof bashname

例子:我在一個終端執行ping命令

Linux進程管理-初級

在另一個終端用pidof查看ping進程對應的進程id

Linux進程管理-初級

進程管理工具-top

直接使用top命令

Linux進程管理-初級

在進入top后可以按P(占據cpu百分比排序)、M(占據內存百分比排序)、T(占據cpu時長)來按不同類型排序,默認是按cpu排序顯示。

top選項

-d #:指定刷新時間,默認是3秒

-b:顯示所有進程

-n:刷新多少次后退出

kill 命令

向進程發送控制信號可以對進程進行管理,每個信號對應一個數字,信號名稱以SIG開頭(可省略),不區分大小寫

顯示當前系統可用信號用命令:kill -l 或者 trap -l

這里例舉幾個常用的信號:

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

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

3)SIGQUIT:相當于Ctrl+\

9)SIGKILL :強制殺死正在運行的進程,可將用戶踢出系統

15)SIGTREM :終止正在運行的進程(比較溫柔的殺死進程,有些進程是它無法殺掉的,需要用9)

18)SIGCONT:繼續運行

19)SIGSTOP:后臺休眠

按PID發生信號:kill [-SIGNAL] pid …

例子:我們用一個終端來執行ping命令,ping命令是前臺執行的進程,我們在另一個終端讓它后臺運行,在讓它回到前臺。

Linux進程管理-初級

Linux進程管理-初級

Linux進程管理-初級Linux進程管理-初級

Linux進程管理-初級

這時可以用kill -15 2591 來殺死進程,也可以讓它變成前臺運行,用Ctrl+c結束,命令:先用jobs命令查看在工作的進程,找到ping對應的job號,用fg命令讓它處于前臺執行。

Linux進程管理-初級

Linux進程管理-初級

按名稱發信號:killall [-SIGNAL] comm…

按模式發信號:pkill [optins] pattern

-SIGNAL

-u uid:effective user,生效者

-U uid:real user,真正發起運行命令者

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

-l:顯示進程名(pgrep可用)

-a:顯示完整格式的進程名(pgrep可用)

-P pid:顯示指定進程的子進程

如果你想在執行命令就讓他處于后臺運行,可以在命令后面加上&符號

Linux進程管理-初級

以上都是進程和進程管理的初步應用,更深層次的使用需要結合實際運用來使用。

原創文章,作者:657188918,如若轉載,請注明出處:http://www.www58058.com/85372

(0)
657188918657188918
上一篇 2017-08-26 12:26
下一篇 2017-08-26 15:52

相關推薦

  • 如何安裝VMware Workstation

    1、打開安裝包,直接點擊“下一步” 2、選擇接受條款,單擊“下一步” 3、選擇安裝路徑,單擊“下一步” 4、單擊“下一步”,也可以勾選掉兩個選項   5、單擊“下一步”   6、點擊“安裝”   7、完成安裝  

    2017-07-11
  • mount掛載

    mount 1 掛載mount                                               &nb…

    Linux干貨 2017-04-24
  • 馬哥教育網絡班21期-第五周課程練習

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@localhost ~]# grep "^[[:space:]]\{1,\}" /boot/grub/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符…

    Linux干貨 2016-08-08
  • N21_第5周作業find

    第5周作業 1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@iZ28zld7ztoZ ~]# grep '^[[:space:]]' /boot/grub/grub.conf [root@iZ28zld7ztoZ ~]# grep&nbsp…

    Linux干貨 2016-08-08
  • Linux基礎知識之cp mv rm

    該博文以CentOS6.8_x86_64系統為基礎,Xshell 5遠程連接CentOS系統,以root身份登錄系統和sjsir普通用戶身份登錄系統。 為什么要學習cp、mv、rm命令?     cp、mv、rm命令為Linux系統使用最長使用的三個命令之一,復制、移動和刪除是我們平時處理一些文件必須要學會的命令,應該用于熟練掌握和使用的…

    Linux干貨 2016-07-29
  • 馬哥教育網絡20期+第五周課程練習

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@localhost ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又…

    Linux干貨 2016-07-07
欧美性久久久久