本章Blog相關Linux知識點node
進程(process):進程是程序的執行實例,即運行中的程序,也是程序的副本;程序放置於磁盤中,而進程放置於內存中;進程的啓動及調度均是由內核發起的。init是全部進程的父進程,而子進程是由fork()進程生成。linux
線程(Thread):一個進程至少包括一個線程,一般將該線程稱爲主線程,因此線程是比進程更小的單位,是系統分配處理器時間資源的基本單元。一個進程要想同時在多顆CPU上運行,必須得分紅互不影響的多個執行流,然後每組單獨在各自所分配的CPU上運行,這種分化後的執行流且有着比進程更小資源分配單位稱之爲線程。ios
程序(Program):程序只是一個普通文件,是一個機器代碼指令和數據的集合,這些指令和數據存儲在磁盤上的一個可執行映象(Executable Image)中,因此,程序是一個靜態的實體。shell
進程優先級0-139 :vim
實時優先級:0-99 ,數字越大,優先級越高windows
靜態優先級:100-139,數字越小,優先級越高緩存
進程nice值:bash
指靜態優先級,下降優先級
取值範圍:-20—19;-20對用100,19對用139服務器
進程類型:守護進程、用戶進程網絡
守護進程:系統啓動時運行的進程,相似windows上的開機進程(開機任務),跟終端無關
用戶進程:用戶經過終端啓動的進程,也能夠叫前臺進程,須要注意的是,也能夠把前臺進程送日後臺,以守護模式運行。
進程狀態:
運行態:running ,正在運行的進程就是當前進程(由current所指向的進程),而準備運行的進程只要獲得CPU就能夠當即投入運行,CPU是這些進程惟一等待的系統資源。系統中有一個運行隊列(run_queue),用來容納全部處於可運行狀態的進程,調度程序執行時,從中選擇一個進程投入運行。
等待態:waiting,處於該狀態的進程正在等待某個事件(event)或某個資源,它確定位於系統中的某個等待隊列(wait_queue)中。Linux中處於等待狀態的進程分爲兩種:可中斷的等待狀態和不可中斷的等待狀態。處於可中斷等待態的進程能夠被信號喚醒,若是收到信號,該進程就從等待狀態進入可運行狀態,而且加入到運行隊列中,等待被調度;而處於不可中斷等待態的進程是由於硬件環境不能知足而等待。
睡眠態:sleeping,可中斷睡眠(interruptable)、不可中斷睡眠(uninterruptable)
中止態:stop ,不會被調度 stopped ,此時的進程暫時中止運行來接受某種特殊處理。一般當進程接收到SIGSTOP、SIGTSTP、SIGTTIN或 SIGTTOU信號後就處於這種狀態。例如,正接受調試的進程就處於這種狀態。
僵死態:zombie,系統調用,終止進程的信息也尚未回收。顧名思義,處於該狀態的進程就是死進程,這種進程其實是系統中的垃圾,必須進行相應處理以釋放其佔用的資源。
linux運行終端:經過命令 #tty 查看
串行終端,串行端口終端(Serial Port Terminal)是使用計算機串行端口鏈接的終端設備,一般使用/dev/ttys/#表示
物理終端,如/dev/console
虛擬終端,Linux中提供的虛擬終端默認有6個,其中第1個是圖形界面,第2到6個則是字符界面。能夠經過Ctrl+Alt+F(1~6)組合鍵在不一樣的虛擬終端之間進行切換,Ctrl+Alt+F7啓動圖形界面(先啓動圖形功能#startx) ,如/dev/tty/#
僞終端(模擬終端),咱們一般都是經過網絡遠程對Linux服務器進行管理,這種經過遠程登陸方式所打開的終端稱爲僞終端(pts)。好比咱們經過Xshell遠程登陸到Linux系統,如:/dev/pts/1
特殊命令組合功能:
Ctrl +c 取消當前程序
Shift +Pageup/Pagedown 翻屏查看命令界面以前的數
進程管理命令:pstree,ps,pgrep,top,htop,vmstat,dstat
# pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-Z] [-A|-G|-U] [pid|user] 查看進程樹命令
pstree -V
-a 顯示進程詳細信息
-p 顯示進程及進程號
[root@PXE ~]# pstree -a init ├─crond ├─dbus-daemon --system ├─dhcpd -user dhcpd -group dhcpd ├─hald │ ├─hald-runner │ │ ├─hald-addon-acpi │ │ └─hald-addon-inpu │ └─{hald} ├─ntpd -u ntp:ntp -p /var/run/ntpd.pid -g ├─sshd │ ├─sshd │ │ └─bash │ └─sshd │ └─bash │ └─pstree -a ├─udevd -d │ ├─udevd -d │ └─udevd -d └─xinetd -stayalive -pidfile /var/run/xinetd.pid [root@PXE ~]# pstree -p init(1)─┬─crond(1212) ├─dbus-daemon(1064) ├─dhcpd(1202) ├─hald(1096)─┬─hald-runner(1097)─┬─hald-addon-acpi(1141) │ │ └─hald-addon-inpu(1129) │ └─{hald}(1098) ├─ntpd(1186) ├─sshd(1165)─┬─sshd(1249)───bash(1254) │ └─sshd(5379)───bash(5384)───pstree(5508) ├─udevd(415)─┬─udevd(1247) │ └─udevd(1248) └─xinetd(1177)
# ps [options] :顯示當前進程狀態
a 顯示全部與終端相關的進程
x 顯示全部與終端無關的進程
u 顯示全部的用戶
-H:顯示進程的層次信息
-F:顯示額外信息
-o :要顯示的字段,自定義顯示格式 例# ps -axo PID,COMMAND
經常使用選項
aux 顯示全部進程的全部信息
-ef 顯示全部進程的全部信息
-eHF 顯示全部進程的額外信息及進程層次關係
[root@PXE ~]# ps au USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1232 0.0 0.0 4064 544 tty1 Ss+ 18:53 0:00 /sbin/mingetty /dev/tty1 root 1234 0.0 0.0 4064 544 tty2 Ss+ 18:53 0:00 /sbin/mingetty /dev/tty2 [root@PXE ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 19364 1560 ? Ss 18:52 0:01 /sbin/init root 5566 0.0 0.0 110252 1136 pts/1 R+ 22:22 0:00 ps aux #各選項涵義: USER:顯示運行此進程的用戶 PID: 進程ID號 %CPU:當前進程運行時長佔據總CPU時長的百分比 %MEM:當前進程使用內存佔據總內存的百分比 VSZ: 虛擬內存集,即當前進程使用的內存加上共享庫大小 RSS: 常駐內存集,當前進程常駐內存的大小,即不能被交換出去的空間大小 TTY: 當前進程所關聯的終端 STAT:進程狀態 S:睡眠 D:不可中斷睡眠(crond守護進程) R:運行 T:中止 Z:僵死 s:session leader(會話領導者) l:多線程進程 +:前臺進程 N:低優先級進程 <:高優先級進程 START:進程啓動時間 TIME: 當前進程真正佔據CPU的時間,而不是掛錶時鐘 COMMAND:當前進程是由哪一個命令發起的 [root@PXE ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 18:52 ? 00:00:01 /sbin/init root 2 0 0 18:52 ? 00:00:00 [kthreadd] root 3 2 0 18:52 ? 00:00:00 [migration/0] [root@PXE ~]# ps -eHF F S UID PID PPID C PRI NI ADDR SZ WCHAN RSS PSR STIME TTY TIME CMD 4 S root 1 0 0 80 0 - 4841 poll_s 1560 1 18:52 ? 00:00:01 /sbin/init 1 S root 2 0 0 80 0 - 0 kthrea 0 0 18:52 ? 00:00:00 [kthreadd] 1 S root 3 2 0 -40 - - 0 migrat 0 0 18:52 ? 00:00:00 [migration/0] [root@PXE ~]# ps axo user,pid,command # 顯示指定的字段 user,pid,command USER PID COMMAND root 1 /sbin/init root 2 [kthreadd] root 3 [migration/0] #各選項涵義: F:當前進程的標誌位(flags),4爲管理員 S:當前進程的狀態 PID:當前進程ID號 PPID:父進程ID號 C:使用時間佔據CPU百分比 PRI:當前優先級 NI:當前進程的nice值 ADDR:kernel function,指出該程序在內存的那個部分。若是是個 running的程序,通常就是 "-" SZ:使用掉內存大小 WCHAN:當前程序是否在運行中,"-"表示running RSS:常駐內存集 PSR:當前進程被分配給哪一個處理器 STIME:當前進程啓動時間 TTY:當前進程所關聯的終端 TIME:累計在CPU上運行的時間 COMMAND:當前進程是由哪一個命令發起的
# pgrep [-flvx] [-d delimiter] [-n|-o] [-P ppid,...] [-g pgrp,...] 只顯示符合條件的進程號 例: # pgrep bash 顯示bash進程的進程號
[-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...]
[-t term,...] [pattern]
-f:僅顯示與進程匹配的名字
-o:僅顯示找到的最小(起始)進程號
-n:僅顯示找到的最大(結束)進程號
-l:顯示進程名稱與進程pid
-P:指定父進程號
-g:指定進程組
-t:指定開啓進程的終端
-u:指定進程的有效用戶ID
[root@PXE ~]# pgrep bash # 顯示bash進程的進程號 1254 5384 [root@PXE ~]# pgrep named # 顯示named進程的進程號 1297 [root@PXE ~]# pgrep -u named # 顯示用戶爲named的進程號 1297 [root@PXE ~]# pgrep -l ntpd # 顯示進程名稱與進程pid 2230 ntpd
# pidof [-s] [-c] [-x] [-o omitpid] [-o omitpid..] program [program..] 顯示運行程序的進程ID
[root@PXE ~]# pidof sshd # 查找sshd進程的id號 1371 1244 1166 [root@PXE ~]# pidof -s sshd # 查找sshd進程的id號,但只顯示一個 1371
# top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...] 查看系統進程
-d #:指定延遲時長,單位是秒
-b:以批處理模式操做
-n #:在批模式下,共顯示多少批
-p pid:顯示進程號爲pid的進程
top 命令下交互命令,下列按鍵表明不一樣的功能:
M:按內存佔用百分比排序
P :按cpu佔用百分比排序
T :按照累積佔用cpu時間長度排序
1鍵 是否顯示各個cpu信息,輸入1鍵關閉多個cpu顯示,在輸入1鍵又打開多個cpu顯示,如此循環
m鍵 是否顯示內存信息,輸入m鍵關閉內存信息顯示,在輸入m鍵又打開內存信息顯示,如此循環
t鍵 是否顯示cpu和進程的統計信息,輸入t鍵關閉cpu和進程的統計信息,在輸入t鍵又打開cpu和進程的統計信息,如此循環
l鍵 是否顯示負載信息,輸入l鍵關閉負載信息,在輸入l鍵又打開負載信息,如此循環
s鍵 輸入時間,調整top刷新時間間隔
k鍵 輸入進程id,停止某一個進程
q鍵 退出top命令界面
[root@PXE ~]# top -d 10 -p 1 #顯示pid爲1的進程且10s刷新一次 top - 23:02:22 up 4:09, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.7%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1941304k total, 506252k used, 1435052k free, 40000k buffers Swap: 4194300k total, 0k used, 4194300k free, 300940k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19364 1560 1248 S 0.0 0.1 0:01.41 init [root@PXE ~]# top -b -d 3 -n 2 #3秒刷新一次,批次顯示,顯示2批次後退出top top - 23:27:46 up 4:34, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.7%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1941304k total, 506540k used, 1434764k free, 40036k buffers Swap: 4194300k total, 0k used, 4194300k free, 300948k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19364 1560 1248 S 0.0 0.1 0:01.41 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:00.01 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0 #各選項涵義: top - 23:27:06(當前時間) up 4:34(系統運行時長), 1 users(用戶數), load average: 0.00, 0.00, 0.00 (等待運行的隊列長度,平均負載,1分鐘,5分鐘和15分鐘) Tasks: 106 total(總進程數), 1 running(運行), 105 sleeping(睡眠), 0 stopped(中止), 0 zombie(僵死) Cpu(s): 0.0%us(userspace用戶空間佔用百分比), 0.0%sy(system), 0.0%ni(被nice值調整的), 99.7%id(idle空閒 ), 0.0%wa(wait等待), 0.0%hi(hardware 硬中斷佔據時間), 0.0%si(軟中斷), 0.0%st (被偷走的) Mem: 1941304k total(總內存大小), 506540k used(使用內存), 1434764k free(空閒內存), 40036k buffers(buffer內存) Swap: 4194300k total(總swap內存大小), 0k used, 4194300k free, 300948k cached (緩存大小) PID:進程id號 USER:進程全部者的用戶名 PR:進程優先級 NI:nice值 VIRT:進程使用的虛擬內存總量 RES:進程使用的、未被換出的物理內存大小 SHR:共享內存大小 S:進程狀態,包括R運行,S睡眠,T中止,D不可中斷進程,Z僵死進程 %CPU:上次更新到如今的CPU時間佔用百分比 %MEM:進程使用的物理內存百分比 TIME+:進程使用的CPU時間總計
# htop [-dChusv] 查看系統進程,爲top功能的升級版
-d:設置刷新時間,單位爲秒;
-C:設置界面爲無顏色;
-u:顯示指定用戶的進程;
-s:對指定列進行排序顯示;
F1:顯示幫助信息;
U:取消全部選中的進程;
s:顯示光標所在進程執行的系統調用;
l:顯示光標所在進程的文件列表;
a:綁定進程到指定的CPU;
u:顯示指定用戶的進程;
M:按照內存使用百分比排序,對應MEM%列;
P:按照CPU使用百分比排序,對應CPU%列;
T:按照進程運行的時間排序,對應TIME+列;
K:隱藏內核線程;
H:隱藏用戶線程;
#:快速定位光標到PID所指定的進程上。
# vmstat [-a] [-n] [-t] [-S unit] [delay [ count]] 顯示虛擬內存信息
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]vmstat [-V]
例:#vmastat 1 3 每一個1秒鐘並顯示3次
-s 顯示內存統計信息
-d 顯示磁盤統計信息
[root@PXE ~]# vmstat -a procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 1465856 41000 306400 0 0 6 2 7 9 0 0 100 0 0 [root@PXE ~]# vmstat -d #顯示硬盤統計信息 disk- ------------reads------------ ------------writes----------- -----IO------ total merged sectors ms total merged sectors ms cur sec sda 14325 4702 680386 75203 3061 30380 267544 44943 0 69 dm-0 12436 0 374954 119300 18277 0 146216 235270 0 50 dm-1 1352 0 15826 16179 54 0 432 94 0 1 dm-2 3929 0 278258 20775 15101 0 120808 3140282 0 17 dm-3 197 0 1570 656 3 0 24 2 0 0 [root@PXE ~]# vmstat -s #顯示內存統計信息 1941304 total memory 475448 used memory 217052 active memory 143012 inactive memory #各選項涵義: FIELD DESCRIPTION FOR VM MODE Procs r: The number of processes waiting for run time. b: The number of processes in uninterruptible sleep. Memory swpd: the amount of virtual memory used. free: the amount of idle memory. buff: the amount of memory used as buffers. cache: the amount of memory used as cache. inact: the amount of inactive memory. (-a option) active: the amount of active memory. (-a option) Swap si: Amount of memory swapped in from disk (/s). so: Amount of memory swapped to disk (/s). IO bi: Blocks received from a block device (blocks/s). bo: Blocks sent to a block device (blocks/s). System in: The number of interrupts per second, including the clock. cs: The number of context switches per second. CPU These are percentages of total CPU time. us: Time spent running non-kernel code. (user time, including nice time) sy: Time spent running kernel code. (system time) id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time. wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle. st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown. FIELD DESCRIPTION FOR DISK MODE Reads total: Total reads completed successfully merged: grouped reads (resulting in one I/O) sectors: Sectors read successfully ms: milliseconds spent reading Writes total: Total writes completed successfully merged: grouped writes (resulting in one I/O) sectors: Sectors written successfully ms: milliseconds spent writing IO cur: I/O in progress s: seconds spent for I/O
# dstat [-afv] [options..] [delay [count]] dstat 是一個能夠取代vmstat,iostat,netstat和ifstat這些命令的多功能工具,是一個全能系統信息統計工具
-a :至關於-cdngy
-l :顯示負載統計量
-m :顯示內存使用率(包括used,buffer,cache,free值)
-r :顯示I/O統計
-s :顯示交換分區使用狀況
-t :將當前時間顯示在第一行
–fs :顯示文件系通通計數據(包括文件總數量和inodes值)
–nocolor :不顯示顏色(有時候有用)
–socket :顯示網絡統計數據
-–tcp :顯示經常使用的TCP統計
-–udp :顯示監聽的UDP接口及其當前用量的一些動態數據
-–disk-util :顯示某一時間磁盤的忙碌情況
-–freespace :顯示當前磁盤空間使用率
-–proc-count :顯示正在運行的程序數量
-–top-bio :指出塊I/O最大的進程
-–top-cpu :圖形化顯示CPU佔用最大的進程
-–top-io :顯示正常I/O最大的進程
-–top-mem :顯示佔用最多內存的進程
# kill [-s signal|-p] [--] pid... 用於實現向其餘進程發送信息
kill -l 顯示可用的信號
經常使用格式:
# kill -n 進程id , 例:#kill -9 36901
# kill -SIG[name] 進程id , 例: # kill -SIGKILL 36901
# kill -[name] 進程id , 例:# kill -KILL 36901
#注:
1信號SIGHUP:通知程序重讀配置文件,而不用重啓程序,至關於reload
2信號SIGINT:至關於Ctrl+c功能,結束運行的任務
9信號SIGKILL:殺死進程
15信號SIGTERM:終止進程 ,默認信號爲15
[root@PXE ~]# ps aux | grep ntpd ntp 5904 0.0 0.1 30744 2152 ? Ss 08:37 0:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g root 7161 0.0 0.0 103276 848 pts/1 S+ 14:52 0:00 grep ntpd [root@PXE ~]# kill -9 5904 # 經過數字信號強制終止ntp 進程 [root@PXE ~]# ps aux | grep dhcpd dhcpd 1202 0.0 0.2 48208 4084 ? Ss 02:21 0:00 /usr/sbin/dhcpd -user dhcpd -group dhcpd root 7165 0.0 0.0 103272 840 pts/1 S+ 14:59 0:00 grep dhcpd [root@PXE ~]# kill -KILL 1202 # 經過信號名稱強制終止ntp 進程 [root@PXE ~]# ps aux | grep xinetd root 1177 0.0 0.0 21716 988 ? Ss 02:21 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid root 7183 0.0 0.0 103272 840 pts/1 S+ 15:02 0:00 grep xinetd [root@PXE ~]# kill -SIGKILL 1177 # 經過信號全名強制終止ntp 進程
# pkill [-signal] [-fvx] [-n|-o] [-P ppid,...] [-g pgrp,...]
# 基於名稱或其它屬性來查找進程,性能與killall相似
[-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...]
[-t term,...] [pattern]
# killall [-Z,--context pattern] [-e,--exact] [-g,--process-group] [-i,--interactive] [-q,--quiet] [-r,--regexp] 經過名字殺死某些進程
[-s,--signal signal] [-u,--user user] [-v,--verbose] [-w,--wait] [-I,--ignore-case] [-V,--version] [--] name ...
killall -l
# killall -SIGNAL name 殺死name應用
[root@PXE ~]# ps aux | grep named named 1308 0.0 0.7 216872 15280 ? Ssl 17:07 0:00 named -u named root 1696 0.0 0.0 103276 844 pts/0 S+ 18:03 0:00 grep named [root@PXE ~]# pkill named #結束named進程 [root@PXE ~]# ps aux | grep named root 1700 0.0 0.0 103272 844 pts/0 S+ 18:03 0:00 grep named [root@PXE ~]# ps aux | grep dhcpd dhcpd 1203 0.0 0.1 48208 3588 ? Ss 16:53 0:00 /usr/sbin/dhcpd -user dhcpd -group dhcpd root 1707 0.0 0.0 103276 848 pts/0 S+ 18:05 0:00 grep dhcpd [root@PXE ~]# killall dhcpd #結束dhcpd程序進程 [root@PXE ~]# ps aux | grep dhcpd root 1710 0.0 0.0 103272 844 pts/0 S+ 18:07 0:00 grep dhcpd
Linux的做業控制及nice值調整
Linux做業控制:
前臺做業:佔據着一個終端
後臺做業:做業執行時不佔據終端,做業啓動後就釋放終端、
非守護進程類的程序,啓動之後都在前臺工做
若是已經啓動:前臺-->後臺。ctrl+z把前臺做業送日後臺,做業被」中止「
若是還沒有啓動:# COMMAND &
退出當前會話,做業也會終止,由於做業與當前終端相關,若是把做業送日後臺後,不指望做業隨終止結束而中止
# nohup COMMAND &
如何讓送日後臺的做業繼續執行:
# fg [%]做業號碼:將做業調回前臺繼續進行
# bg [%]做業號碼:讓做業在調整爲優先啓動
終止做業:默認的爲最後一個進入後臺的任務
# kill %做業號碼:終止做業
查看做業號:
# jobs
[root@PXE ~]# top & #把做業送日後臺 [1] 1907 [root@PXE ~]# vi /etc/init.d/xinetd # 使用 crtl +z 把進程由前臺轉爲後臺 ^Z [2]+ Stopped vim /etc/init.d/xinetd [root@PXE ~]# find /var -print ^Z [root@PXE ~]# jobs [1] Stopped top [2]- Stopped vim /etc/init.d/xinetd [3]+ Stopped find /var -print [root@PXE ~]# bg %2 #把2號後臺任務調爲優先啓動 [2] vim /etc/init.d/xinetd & [root@PXE ~]# jobs [1]- Stopped top [2]+ Stopped vim /etc/init.d/xinetd [3] Stopped find /var -print [root@www ~]# fg # 默認取出那個 + 的工做,亦即 [2]。 [root@PXE ~]# fg %1 top top - 20:08:11 up 3:15, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 100 total, 1 running, 98 sleeping, 1 stopped, 0 zombie Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.8%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1941304k total, 313784k used, 1627520k free, 60920k buffers Swap: 4194300k total, 0k used, 4194300k free, 145412k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19364 1556 1248 S 0.0 0.1 0:01.08 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:00.09 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0 6 root RT 0 0 0 0 S 0.0 0.0 0:00.01 watchdog/0 7 root RT 0 0 0 0 S 0.0 0.0 0:00.31 migration/1 [root@www ~]# jobs #查看做業號 [3]+ Stopped find /var -print [root@PXE ~]# kill %3 #終止3號做業 [3]+ Stopped find /var -print [root@PXE ~]# jobs [3]+ Terminated find /var -print [root@PXE ~]# jobs # 3號做業已終止 [root@PXE ~]# nohup top & #把進程調入後臺執行 [1] 2426
#
renice
[-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
調整運行中進程的優先級
renice
-h | -
v
# nice
[OPTION] [COMMAND [ARG]...] 以預先定義的nice優先級啓動進程
[root@PXE ~]# ps axo ni,pid,command | grep bash # 只顯示pid,nice值以及command 0 1967 -bash 0 2041 -bash 0 2091 grep bash [root@PXE ~]# renice -5 2041 # 調整nice值爲-10 2041: old priority 0, new priority -5 [root@PXE ~]# ps axo ni,pid,command | grep bash # 2041進程nice值變爲了-5 0 1967 -bash -5 2041 -bash -5 2096 grep bash [root@PXE ~]# nice -n 1 ntpd #對於未啓用的ntp進程調整nice值,增長1 [root@PXE ~]# ntpd [root@PXE ~]# ps axo pid,ni,command | grep ntpd #查看ntp進程nice值 ,變爲-4 2230 -4 ntpd 2247 -5 grep ntpd
本章blog知識點彙總
# pstree [-a|-p] 查看進程樹命令
# ps aux 查看當前進程狀態
# ps ef 顯示全部進程的全部信息
# ps axo pid,ni,command 只顯示進程的pid,nice值,command
# pgrep pattern 只顯示符合pattern的進程
# pidof pattern 顯示運行程序的進程ID
# top 查看系統進程
# top -d delay -n iterations -p pid [, pid ...] 查看系統進程
# htop 查看系統進程,爲top功能的升級版
# vmstat [delay [ count]] 顯示虛擬內存信息
# dstat [delay [count]] dstat 是一個能夠取代vmstat,iostat,netstat和ifstat這些命令的多功能工具,是一個全能系統信息統計工具
# kill [-s signal|-p] [--] pid... 用於實現向其餘進程發送信息
# pkill [-signal] [-fvx] [-n|-o] [-P ppid,...] [-g pgrp,...]
# 基於名稱或其它屬性來查找進程,性能與killall相似
# killall -SIGNAL name 殺死name應用
# COMMAND & 把做業送日後臺
# fg [%]做業號碼:將做業調回前臺繼續進行
# bg [%]做業號碼:讓做業在後臺調整爲優先執行
# kill %做業號碼:終止做業
# jobs 查看做業號
#
renice
[-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
調整運行中進程的優先級
# nice
[OPTION] [COMMAND [ARG]...] #以預先的優先級啓動進程