歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下的進程的管理

Linux下的進程的管理

日期:2017/2/28 15:51:58   编辑:Linux教程

Linux操作系統包括如下三種不同類型的進程,每種進程都有其自己的特點和屬性:

交互進程:由一個shell啟動的進程。交互進程既可以在前台運行,也可以在後台運行。
批處理進程:這種進程和終端沒有聯系,是一個進程序列。
守護進程:Linux系統啟動時啟動的進程,並在後台運行。
上述三種進程各有各的作用,使用場合也有所不同。

Linux系統提供了who、w、ps和top等察看進程信息的系統調用,通過結合使用這些系統調用,我們可以清晰地了解進程的運行狀態以及存活情況,從而采取相應的措施,來確保Linux系統的安全。

1、who命令

該命令主要用於查看當前在線上的用戶情況。系統管理員可以使用who命令監視每個登錄的用戶此時此刻的所作所為:

# who root pts/1 2010-02-21 15:56 (:0.0)
2、w命令

該命令也用於顯示登錄到系統的用戶情況,但是與who不同的是,w命令功能更加強大,它不但可以顯示有誰登錄到系統,還可以顯示出這些用戶當前正在進行的工作,w命令是who命令的一個增強版:

# w 15:56:44 up 38 min, 1 user, load average: 0.56, 0.15, 0.12 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/1 :0.0 15:56 0.00s 0.19s 0.05s w
3、ps命令

最基本同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等。ps命令可以監控後台進程的工作情況,因為後台進程是不和屏幕鍵盤這些標准輸入/輸出設備進行通信的,如果需要檢測其情況,可以使用ps命令。下面是一個ps命令的例子:

# ps PID TTY TIME CMD 2817 pts/1 00:00:00 bash 2836 pts/1 00:00:00 ps
4、top命令

top命令和ps命令的基本作用是相同的,顯示系統當前的進程和其他狀況;但是top是一個動態顯示過程,可以通過用戶按鍵來不斷刷新當前狀態。如果在前台執行該命令,它將獨占前台,直到用戶終止該程序為止。比較准確地說,top命令提供了實時的對系統處理器的狀態監視。它將顯示系統中CPU最“敏感”的任務列表。該命令可以按CPU使用。內存使用和執行時間對任務進行排序;而且該命令的很多特性都可以通過交互式命令或者在個人定制文件中進行設定。下面是一個top命令的例子:

# top top - 15:58:07 up 39 min, 1 user, load average: 2.09, 0.68, 0.30 Tasks: 112 total, 2 running, 108 sleeping, 0 stopped, 2 zombie Cpu(s): 30.6%us, 25.2%sy, 0.0%ni, 41.2%id, 0.3%wa, 2.7%hi, 0.0%si, 0.0%st Mem: 485736k total, 477828k used, 7908k free, 31252k buffers Swap: 1285160k total, 0k used, 1285160k free, 291192k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2502 root 15 0 36680 10m 5776 S 40.0 2.2 0:54.26 Xorg 2814 root 15 0 127m 16m 10m S 3.0 3.5 0:03.62 gnome-terminal 2616 root 15 0 97356 14m 10m S 2.6 3.1 0:02.43 gnome-panel 2609 root 15 0 38660 10m 7544 S 2.0 2.1 0:01.57 metacity 2640 root 15 0 96276 13m 9448 S 2.0 2.7 0:01.46 wnck-applet 2597 root 15 0 33916 8144 6768 S 1.0 1.7 0:01.32 gnome-settings- 2618 root 15 0 133m 20m 14m S 1.0 4.4 0:04.66 nautilus 2709 root 15 0 16396 3488 2736 S 0.7 0.7 0:02.72 gnome-screensav 2837 root 15 0 2160 1008 788 R 0.7 0.2 0:00.31 top 2855 root 15 0 106m 22m 14m S 0.7 4.8 0:01.87 gedit 2035 root 18 0 33180 1276 536 S 0.3 0.3 0:01.51 pcscd 2076 root 21 0 9336 1108 856 S 0.3 0.2 0:00.35 automount 2313 root 18 0 1920 624 544 S 0.3 0.1 0:03.46 hald-addon-stor 2665 root 15 0 2528 1156 948 S 0.3 0.2 0:00.26 gam_server 2703 root 15 0 64020 24m 14m S 0.3 5.3 0:02.39 /usr/bin/sealer 2713 root 15 0 49500 6528 3484 S 0.3 1.3 0:00.31 scim-panel-gtk 1 root 15 0 2036 640 548 S 0.0 0.1 0:02.16 init 2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 4 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 5 root 10 -5 0 0 0 S 0.0 0.0 0:00.06 events/0 6 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 khelper 7 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 kthread 10 root 10 -5 0 0 0 S 0.0 0.0 0:00.26 kblockd/0
以上介紹的是目前在Linux下使用得最常見的進程狀況查看工具,它們是隨Linux套件發行的,安裝好系統之後,用戶就可以使用。當然,隨著開源的不斷發展,相信將會有更多的該方面的工具出現,以方便用戶選擇和使用。

進程的管理

靜態的查看 ps
動態的查看 top

對進程的處理
調整一個新的進程的優先級 0-99 內核
nice 越小優先級越高
nice -n (-20 ~ 19) vim & 後台執行
renice 數值 pid
調整正在執行的nice值,進而影響pri值

進程的狀態
1:運行狀態 running ,runable R
2:sleep 睡眠狀態 可中斷睡眠 不可中斷的進程 S
3: 停止態 T
4:僵屍態 Z

ps aux
ps tree |less
ps ps -l 查看當前終端的進程
ps -t 終端標識 tty1
ps -u 用戶
ps -ef aux 所有的進程
ps aux |grep
pgrep
ps -eo uid,gid,cmd

動態顯示 例子:watch -n 1 ‘ps -aux |grep cp’

kill -l

pkill 名字 先搜索程序在殺死 pkill -1 httpd trap 'echo haha' SIGINT
1) SIGHUP不需要重啟,既可以更新xinetd,針對服務 2) SIGINT 撲捉終斷信息 ctrl+c
9) SIGKILL 強制終止,會造成數據的丟失 15) SIGTERM 正常終止,數據不會丟失

Copyright © Linux教程網 All Rights Reserved