日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

七、Linux脚本进阶和进程管理

發(fā)布時(shí)間:2025/3/21 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 七、Linux脚本进阶和进程管理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、進(jìn)程


進(jìn)程:init(1)-->系統(tǒng)的第一個(gè)進(jìn)程,通過(guò)fork調(diào)用其他進(jìn)程,自身由內(nèi)核發(fā)起。

通過(guò)pstree可以查看進(jìn)程之間的父子關(guān)系。

[root@localhost?~]#?pstreeinit─┬─NetworkManager─┬─dhclient│????????????????└─{NetworkManager}├─abrtd├─acpid├─atd├─auditd───{auditd}├─crond├─cupsd├─dbus-daemon───{dbus-daemon}├─hald─┬─hald-runner─┬─hald-addon-acpi│??????│?????????????└─hald-addon-inpu│??????└─{hald}├─master─┬─pickup│????????└─qmgr├─6*[mingetty]├─modem-manager├─rsyslogd───3*[{rsyslogd}]├─sshd───sshd───bash───pstree├─tpvmlp├─udevd───2*[udevd]├─vmtoolsd───{vmtoolsd}├─vmware-vmblock-───4*[{vmware-vmblock}]└─wpa_supplicant

1、進(jìn)程的分類

內(nèi)存地址空間分配使用情況說(shuō)明

1

進(jìn)程間通訊:IPC inter process communication

不同程序調(diào)用相同的庫(kù)文件,就需要進(jìn)程間通訊。

進(jìn)程分為兩類:

CPU-bound:CPU密集型進(jìn)程

IO-bound:IO密集型進(jìn)程

進(jìn)程按處理時(shí)間分:

批處理進(jìn)程

實(shí)時(shí)進(jìn)程

交互式進(jìn)程

2、進(jìn)程間工作原理

進(jìn)程切換

為什么要有進(jìn)程切換

因?yàn)橐粋€(gè)系統(tǒng)要提供多個(gè)進(jìn)程同時(shí)工作,也就是多任務(wù)的概念,那么每個(gè)程序可能由多個(gè)進(jìn)程組成,每個(gè)進(jìn)程又分配了優(yōu)先級(jí)和時(shí)間片,如果一個(gè)進(jìn)程時(shí)間片用完,就要給另一個(gè)進(jìn)程使用了,另一種情況是,一個(gè)進(jìn)程的工作需要調(diào)用另一個(gè)進(jìn)程來(lái)協(xié)助完成,再有就是被搶占。這三種方式都需要進(jìn)程切換。

如何實(shí)現(xiàn)進(jìn)程切換

進(jìn)程進(jìn)行切換前需要有現(xiàn)場(chǎng)保護(hù)的一個(gè)工作,對(duì)方進(jìn)程完畢切換回來(lái)還需要一個(gè)現(xiàn)場(chǎng)恢復(fù)的過(guò)程。

進(jìn)程如果需要切換到其他進(jìn)程上需要由內(nèi)核來(lái)完成,自己不能直接處理,這個(gè)時(shí)候就有了系統(tǒng)調(diào)用的概念,就是內(nèi)核幫助進(jìn)程完成某些工作,cpu的工作模式分為內(nèi)核模式(ring0)和用戶模式(ring3),內(nèi)核會(huì)依據(jù)級(jí)別來(lái)確定是工作在內(nèi)核模式上還是用戶模式上,所以說(shuō)有系統(tǒng)調(diào)用就必然有模式切換。

什么是模式切換?

就是在進(jìn)行系統(tǒng)調(diào)用的時(shí)候產(chǎn)生的對(duì)cpu工作模式的切換,帶內(nèi)核工作完成后再將工作還給進(jìn)程。


模式切換不是上下文切換,什么是上下文切換呢?

上下文切換是指一個(gè)進(jìn)程結(jié)束,執(zhí)行另一個(gè)進(jìn)程或者被搶奪的情況,稱為上下文切換。

3、IO操作

什么是io(輸入輸出)

一個(gè)系統(tǒng)的運(yùn)行,是要為人服務(wù)的,就是說(shuō)人可以進(jìn)行輸入操作,并通過(guò)輸出獲得結(jié)果,這個(gè)就是io操作。

系統(tǒng)如何識(shí)別io的操作

io操作有很多,可以是鍵盤輸入,批處理命令,遠(yuǎn)程操作等等,內(nèi)核如何識(shí)別這些操作,并準(zhǔn)確處理呢,

首先如何獲取io操作,早期是通過(guò)忙等待的方式,就是保留一個(gè)資源給io接口,等待它的操作指令,第二種是輪詢,定期查看io接口是否有輸入操作。第三種是中斷,就是當(dāng)有io操作時(shí)發(fā)送一個(gè)中斷信號(hào)給內(nèi)核,要求內(nèi)核處理,這里就可以知道io操作的優(yōu)先級(jí)還是比較高的。

4、優(yōu)先級(jí)

如何設(shè)置進(jìn)程的運(yùn)行等級(jí)?調(diào)度器!

? ? ? ? ?進(jìn)程優(yōu)先級(jí):

? ? ? ? ? ? ? ?動(dòng)態(tài)優(yōu)先級(jí)

? ? ? ? ? ? ? ?靜態(tài)優(yōu)先級(jí):100-139 數(shù)值越小優(yōu)先級(jí)越高

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?可以通過(guò)nice值來(lái)手動(dòng)調(diào)整,-20,19。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?普通用戶只可以調(diào)大數(shù)字,降低優(yōu)先級(jí)。

? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? 用法:nice -n # command

? ? ? ? ? ? ? ?實(shí)時(shí)優(yōu)先級(jí):調(diào)度實(shí)時(shí)進(jìn)程,1-99 數(shù)值越大優(yōu)先級(jí)越高

5、進(jìn)程的狀態(tài)

ready、running、sleeping、stopped,zombie(僵死狀態(tài))

多cpu如何應(yīng)用?

一個(gè)程序要運(yùn)行,(只)開(kāi)啟一個(gè)進(jìn)程的,通常一個(gè)程序是只有一個(gè)數(shù)據(jù)流的(按照程序編寫的順序自上向下執(zhí)行),并只會(huì)占用一個(gè)cpu的內(nèi)核,當(dāng)有多個(gè)cpu同時(shí)工作的情況,如何利用cpu的優(yōu)勢(shì)呢,通常有兩種情況:1、將多個(gè)進(jìn)程分配到多個(gè)cpu內(nèi)核上,每個(gè)內(nèi)核就分配到了一定數(shù)量的進(jìn)程,達(dá)到了合理分配資源的目的。2、如果只有一個(gè)程序占用大量的資源,要給他分配多個(gè)cpu內(nèi)核如何操作呢,就是需要程序在編寫的時(shí)候,允許多個(gè)數(shù)據(jù)流同時(shí)進(jìn)行,這樣在程序創(chuàng)建進(jìn)程的時(shí)候,就可以在一個(gè)進(jìn)程中創(chuàng)建多個(gè)線程,每個(gè)線程就是一個(gè)數(shù)據(jù)流。linux對(duì)線程的支持并不是很好,表現(xiàn)的最終形式就是輕量級(jí)進(jìn)程,最終體現(xiàn)的還是“進(jìn)程”哦。

基于線程的訪問(wèn)優(yōu)勢(shì)就是它是進(jìn)程的子集,所有在訪問(wèn)重復(fù)資源的時(shí)候,不需要重復(fù)范圍,可以通過(guò)其他線程上訪問(wèn),更加快捷,非常適用于web服務(wù)。


二、進(jìn)程管理


進(jìn)程管理類的命令:

pstree、ps、top、vmstat、htop

1、pstree:查看進(jìn)程樹

[root@localhost ~]# pstree

init─┬─NetworkManager

?? ? ├─abrtd

?? ? ├─acpid

?? ? ├─atd

?? ? ├─auditd───{auditd}

?? ? ├─automount───4*[{automount}]

?? ? ├─bluetoothd

?? ? ├─certmonger

?? ? ├─console-kit-dae───63*[{console-kit-da}]


2、PS詳解

ps:顯示當(dāng)前進(jìn)程狀態(tài)的命令;靜態(tài)顯示。

[root@localhost ~]# ps -efH

UID ? ? ? ? PID ? PPID? C STIME TTY? ? ? ? ? TIME CMD

root? ? ? ? ? 1? ? ? 0? 0 May15 ?? ? ? ? 00:00:01 /sbin/init

root? ? ? ? 575? ? ? 1? 0 May15 ?? ? ? ? 00:00:00 ? /sbin/udevd -d

root ? ? ? 2121? ? 575? 0 May15 ?? ? ? ? 00:00:00 ? ? /sbin/udevd -d

root ? ? ? 2122? ? 575? 0 May15 ?? ? ? ? 00:00:00 ? ? /sbin/udevd -d

root ? ? ? 1535? ? ? 1? 0 May15 ?? ? ? ? 00:00:00 ? auditd

root ? ? ? 1569? ? ? 1? 0 May15 ?? ? ? ? 00:00:00 ? /sbin/rsyslogd -i /var/run/s

rpc? ? ? ? 1620? ? ? 1? 0 May15 ?? ? ? ? 00:00:00 ? rpcbind


常用參數(shù):

-a所有和終端相關(guān)的進(jìn)程 ? ?

-x所有和終端無(wú)關(guān)的進(jìn)程,用?來(lái)表示和終端無(wú)關(guān)

-u以用戶為中心顯示進(jìn)程

-e:顯示所有進(jìn)程

-f:完整格式列表

? ? ? ??? ? ppid:父進(jìn)程號(hào)

-F:顯示額外信息

? ? ? ? ? ? psr:表示運(yùn)行在那顆cpu上

-H:顯示進(jìn)程間的父子關(guān)系

-o:自定義顯示格式

進(jìn)程條目:

? ? ? ? stat:

? ? ? ? ? ? ? ? ? ?S:可中斷睡眠狀態(tài),

? ? ? ? ? ? ? ? ? ?D:不可中斷的睡眠。

? ? ? ? ? ? ? ? ? ?R:運(yùn)行或可運(yùn)行

? ? ? ? ? ? ? ? ? ?T:停止

? ? ? ? ? ? ? ? ? ?Z:僵死

? ? ? ? ? ? ? ? ? ?s:session leader 一個(gè)進(jìn)程的主要進(jìn)程

? ? ? ? ? ? ? ? ? ?l:多線程進(jìn)程

? ? ? ? ? ? ? ? ? ?+:前臺(tái)進(jìn)程

? ? ? ? ? ? ? ? ? ?N:低優(yōu)先級(jí)進(jìn)程

? ? ? ? ? ? ? ? ? ?<:高優(yōu)先級(jí)進(jìn)程

time:運(yùn)行時(shí)長(zhǎng)

command:進(jìn)程發(fā)起者,命令

vsz:線性地址空間大小,非實(shí)際占用大小

rss:實(shí)際占用空間大小

%cpu:進(jìn)程占用cpu時(shí)間比

paid:父進(jìn)程號(hào)碼

stime:第一次啟動(dòng)時(shí)間

time:運(yùn)行時(shí)長(zhǎng)

PSR:表示運(yùn)行在多cpu的那個(gè)cpu內(nèi)核上

u:以用戶為中心顯示進(jìn)程的相關(guān)信息

TTY:

??控制臺(tái):/dev/console

??虛擬終端:/dev/tty1-6,

??模擬終端:遠(yuǎn)程連接的終端 /dev/pts/0

??串行終端:/dev/ttys

ps命令詳解:http://www.cnblogs.com/wangkangluo1/archive/2011/09/23/2185938.html


3、pgrep詳解

?顯示指定的進(jìn)程信息。

? ?-U:username 顯示相關(guān)用戶的進(jìn)程

? ?-G:groupname 顯示組的進(jìn)程

? ?-l:查看指定程序或進(jìn)程的進(jìn)程號(hào)

[root@localhost ~]# pgrep -U root

1

2

3

4

5


4、pidof

顯示某進(jìn)程的進(jìn)程號(hào)

[root@localhost ~]# pidof sshd

5449 1878


5、top詳解

[root@localhost ~]# top


top - 01:18:07 up 19:56,? 2 users,? load average: 0.00, 0.00, 0.00

Tasks:? 99 total, ? 1 running,? 98 sleeping, ? 0 stopped, ? 0 zombie

Cpu(s):? 0.0%us,? 0.0%sy,? 0.0%ni,100.0%id,? 0.0%wa,? 0.0%hi,? 0.0%si,? 0.0%st

Mem: ? 1004768k total, ? 230948k used, ? 773820k free,? ? 33972k buffers

Swap:? 2031612k total,? ? ? ? 0k used,? 2031612k free,? ? 69424k cached


?? PID USER? ? ? PR? NI? VIRT? RES? SHR S %CPU %MEM? ? TIME+? COMMAND ? ? ? ? ?

?? ? 1 root? ? ? 20 ? 0 19364 1540 1228 S? 0.0? 0.2 ? 0:01.32 init ? ? ? ? ? ? ?

?? ? 2 root? ? ? 20 ? 0 ? ? 0? ? 0? ? 0 S? 0.0? 0.0 ? 0:00.00 kthreadd ? ? ? ? ?

?? ? 3 root? ? ? RT ? 0 ? ? 0? ? 0? ? 0 S? 0.0? 0.0 ? 0:00.00 migration/0? ? ?

條目詳解

load average:每隔5/10/15分鐘的隊(duì)列長(zhǎng)度。一般是一個(gè)小數(shù)

cpu:us:用戶空間程序占用%

? ? ? ? ? sy:內(nèi)核空間程序占用%,她與us的合理比例是7:3,就是us占70%,sy占30%

? ? ? ? ? ni:調(diào)整nice值

? ? ? ? ? id:cpu空閑%

? ? ? ? ? wa:(wait)等待磁盤io完成輸入輸出工作所占據(jù)的時(shí)間比例

? ? ? ? ? hi:硬件中斷占據(jù)的百分比

? ? ? ? ? si:軟中斷占據(jù)的百分比

? ? ? ? ? st:被偷走的時(shí)間,虛擬機(jī)占用運(yùn)行的時(shí)間

PR:優(yōu)先級(jí) priority

NI:nice值

virt:虛擬內(nèi)存級(jí)

res:實(shí)際內(nèi)存級(jí)

shar:共享內(nèi)存優(yōu)先級(jí)

s:狀態(tài)stats

%cpu:自從上次刷新到現(xiàn)在cpu被此進(jìn)程占用的百分比。


選項(xiàng)和參數(shù):

top是交互式命令,通過(guò)輸入不同的字母顯示不同的信息,實(shí)際上就是條目的第一個(gè)縮寫,比如

M:按內(nèi)存空間占用大小排序

P:按cpu時(shí)間占用大小排序

T:按累計(jì)時(shí)間排序

k:殺死一個(gè)進(jìn)程,輸入后需要制定kill 后面的選項(xiàng)1-15,常用是9 強(qiáng)制殺死。

m、p、l用于是否顯示抬頭的相關(guān)信息。

q:退出

-d #:刷新時(shí)間

-b:批次顯示

-n #:指定批次顯示的次數(shù)

6、vmstat

查看服務(wù)器cpu使用情況,內(nèi)存、虛擬內(nèi)存使用情況和磁盤讀寫情況。

[root@localhost ~]# vmstat

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 164752 1484028 449036? ? 0? ? 0 ? ? 0 ? 138 ? 10 ? 18? 0? 0 100? 0? 0

[root@localhost ~]# vmstat


procs:

r:運(yùn)行或等待cpu時(shí)間片的進(jìn)程的個(gè)數(shù)

b:被阻塞的進(jìn)程隊(duì)列的長(zhǎng)度


memory:

swpd?虛擬內(nèi)存(swap)已使用的大小,如果大于0,表示你的機(jī)器物理內(nèi)存不足了,如果不是程序內(nèi)存泄露的原因,那么你該升級(jí)內(nèi)存了或者把耗內(nèi)存的任務(wù)遷移到其他機(jī)器。

free?? 空閑的物理內(nèi)存的大小,我的機(jī)器內(nèi)存總共8G,剩余3415M。

buff?? Linux/Unix系統(tǒng)是用來(lái)存儲(chǔ),目錄里面有什么內(nèi)容,權(quán)限等的緩存,我本機(jī)大概占用300多m

cache?cache直接用來(lái)記憶我們打開(kāi)的文件,給文件做緩沖,我本機(jī)大概占用300多M(這里是Linux/Unix的聰明之處,把空閑的物理內(nèi)存的一部分拿來(lái)做文件和目錄的緩存,是為了提高 程序執(zhí)行的性能,當(dāng)程序使用內(nèi)存時(shí),buffer/cached會(huì)很快地被使用。)

si??每秒從磁盤讀入(放到swap中的數(shù)據(jù)量)虛擬內(nèi)存的大小,如果這個(gè)值大于0,表示物理內(nèi)存不夠用或者內(nèi)存泄露了,要查找耗內(nèi)存進(jìn)程解決掉。我的機(jī)器內(nèi)存充裕,一切正常。

so??每秒虛擬內(nèi)存寫入磁盤的大小(從swap中讀取的數(shù)據(jù)量),如果這個(gè)值大于0,同上。

bi??塊設(shè)備(磁盤)每秒接收的塊數(shù)量,這里的塊設(shè)備是指系統(tǒng)上所有的磁盤和其他塊設(shè)備,默認(rèn)塊大小是1024byte,我本機(jī)上沒(méi)什么IO操作,所以一直是0,但是我曾在處理拷貝大量數(shù)據(jù)(2-3T)的機(jī)器上看過(guò)可以達(dá)到140000/s,磁盤寫入速度差不多140M每秒

bo?塊設(shè)備每秒發(fā)送的塊數(shù)量,例如我們讀取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO過(guò)于頻繁,需要調(diào)整。

in?每秒CPU的中斷次數(shù),包括時(shí)間中斷

cs?每秒上下文切換次數(shù),例如我們調(diào)用系統(tǒng)函數(shù),就要進(jìn)行上下文切換,線程的切換,也要進(jìn)程上下文切換,這個(gè)值要越小越好,太大了,要考慮調(diào)低線程或者進(jìn)程的數(shù)目,例如在apache和nginx這種web服務(wù)器中,我們一般做性能測(cè)試時(shí)會(huì)進(jìn)行幾千并發(fā)甚至幾萬(wàn)并發(fā)的測(cè)試,選擇web服務(wù)器的進(jìn)程可以由進(jìn)程或者線程的峰值一直下調(diào),壓測(cè),直到cs到一個(gè)比較小的值,這個(gè)進(jìn)程和線程數(shù)就是比較合適的值了。系統(tǒng)調(diào)用也是,每次調(diào)用系統(tǒng)函數(shù),我們的代碼就會(huì)進(jìn)入內(nèi)核空間,導(dǎo)致上下文切換,這個(gè)是很耗資源,也要盡量避免頻繁調(diào)用系統(tǒng)函數(shù)。上下文切換次數(shù)過(guò)多表示你的CPU大部分浪費(fèi)在上下文切換,導(dǎo)致CPU干正經(jīng)事的時(shí)間少了,CPU沒(méi)有充分利用,是不可取的。

us?用戶進(jìn)程占用CPU時(shí)間的百分比,我曾經(jīng)在一個(gè)做加密解密很頻繁的服務(wù)器上,可以看到us接近100,r運(yùn)行隊(duì)列達(dá)到80(機(jī)器在做壓力測(cè)試,性能表現(xiàn)不佳)。

sy?系統(tǒng)進(jìn)程占用CPU時(shí)間的百分比,如果太高,表示系統(tǒng)調(diào)用時(shí)間長(zhǎng),例如是IO操作頻繁。

id??空閑 CPU時(shí)間,一般來(lái)說(shuō),id + us + sy = 100,一般我認(rèn)為id是空閑CPU使用率,us是用戶CPU使用率,sy是系統(tǒng)CPU使用率。

wt?cpu等待IO完成的時(shí)間。

st:被虛擬化偷走的時(shí)間

選項(xiàng):


vmstat delay count:設(shè)置vmstat顯示的刷新的時(shí)間間隔和顯示次數(shù) vmstat 2 2

[root@localhost ~]# vmstat 2 2

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 164612 1484036 449036? ? 0? ? 0 ? ? 0 ? 138 ? 10 ? 18? 0? 0 100? 0? 0

?0? 0? ? ? 0 164612 1484036 449036? ? 0? ? 0 ? ? 0 ? ? 0 ? 71 ? 78? 0? 0 100? 0? 0

每個(gè)兩秒顯示一次,一共顯示兩次。

7、sar (system activity reporter)

用來(lái)收集、顯示保存系統(tǒng)活動(dòng)信息及報(bào)告。

-u:

-P:指定顯示cpu的信息

linux sar命令詳解

8、iostat:顯示系統(tǒng)性能相關(guān)信息,硬盤讀寫情況

[root@localhost ~]# iostat

Linux 4.6.0 (localhost.localdomain)?2016年05月18日?_x86_64_(1 CPU)


avg-cpu:? %user ? %nice %system %iowait? %steal ? %idle

?? ? ? ? ? 0.03? ? 0.00? ? 0.14? ? 0.02? ? 0.00 ? 99.81


Device:? ? ? ? ? ? tps ? Blk_read/s ? Blk_wrtn/s ? Blk_read ? Blk_wrtn

sda ? ? ? ? ? ? ? 1.75? ? ? ? 25.03 ? ? ? ? 2.41 ? ? 592778? ? ? 57170

dm-0? ? ? ? ? ? ? 1.82? ? ? ? 24.63 ? ? ? ? 2.41 ? ? 583402? ? ? 57152

dm-1? ? ? ? ? ? ? 0.01 ? ? ? ? 0.11 ? ? ? ? 0.00 ? ? ? 2600? ? ? ? ? 0



9、dstat -c 顯示cpu詳細(xì) 實(shí)時(shí)顯示

[root@localhost ~]# dstat

----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--

usrsysidlwaihiqsiq|?read??writ|?recv??send|? in???out?|?int???csw?

? 0 ? 0?100?? 0 ? 0 ? 0|? 15k?1602B|?? 0 ? ? 0?|?? 0 ? ? 0?|?103???127?

? 0 ? 0?100?? 0 ? 0 ? 0|?? 0??? 28k|2067B?1234B|?? 0 ? ? 0?|?101??? 97?


? 0 ? 0?100?? 0 ? 0 ? 0|?? 0 ? ? 0?|1612B??452B|?? 0 ? ? 0?|? 80??? 79?


三、信號(hào)

引用信號(hào)的方法:通過(guò)數(shù)字、信號(hào)名、簡(jiǎn)寫。

顯示信號(hào):kill -l

常用信號(hào):

1:sighup:進(jìn)程不用終止,而可以重讀配置文件。對(duì)于在線服務(wù)可以使用。

2:sigint:中斷正在運(yùn)行的進(jìn)程,相當(dāng)于ctrl+c

9:sigkill:殺死一個(gè)進(jìn)程

15:sigterm:終止進(jìn)程,容許進(jìn)程可以完成當(dāng)前工作。

19:sigstop:停止

18:sig

命令:

1、kill -信號(hào) pid

[root@localhost ~]# kill -9 9761

[root@localhost ~]# kill -sigkill 2119


2、killall -信號(hào) 進(jìn)程名

kill是按照pid進(jìn)行查找并按照信號(hào)要求做相應(yīng)的處理,而killall是按照進(jìn)程名進(jìn)行查找并處理相關(guān)進(jìn)程。

3、killall5 -信號(hào)?

對(duì)所有相關(guān)進(jìn)程有效

4、調(diào)整進(jìn)程nice值

nice -n # command ?默認(rèn)優(yōu)先級(jí)是120

renice # pid 對(duì)正在運(yùn)行的進(jìn)程調(diào)整其nice數(shù)值

5、作業(yè)控制

前臺(tái)送往后臺(tái)可以使用ctrl+z,但屬于停止?fàn)顟B(tài),后臺(tái)調(diào)到前臺(tái)使用fg %作業(yè)號(hào)碼

+:下一次后臺(tái)要運(yùn)行的作業(yè)

-:是在+作業(yè)運(yùn)行完再運(yùn)行的作業(yè)。

bg %作業(yè)號(hào)碼 :讓其在后臺(tái)運(yùn)行。

啟動(dòng)時(shí),讓作業(yè)直接在后臺(tái)運(yùn)行:command &

用戶退出后繼續(xù)運(yùn)行作業(yè):nohup command &

終止作業(yè):

kill %作業(yè)號(hào)碼

如果一個(gè)程序會(huì)產(chǎn)生多個(gè)進(jìn)程,那么快速殺死多個(gè)進(jìn)程的方法:

? ? 1、killall,必須給出完整的進(jìn)程名。

[root@node3.dtedu.com ~]# killall ha_logd


? ? 2、pkill,簡(jiǎn)單給出進(jìn)程名就可以,名稱可以不完整。

[root@node3.dtedu.com ~]# pkill -9 heartbeat

[root@node3.dtedu.com ~]# /sbin/service: line 66:? 2291 Killed? ? ? ? ? ? ? ? ? env -i PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" ${OPTIONS}


[1]+? Exit 137? ? ? ? ? ? ? ? service heartbeat stop


? ? 3、正則表達(dá)式殺死多進(jìn)程。

[root@node3.dtedu.com ~]# kill -9 `pgrep crond`


5.1screen

當(dāng)我們?cè)谶\(yùn)行一個(gè)程序需要很長(zhǎng)時(shí)間的時(shí)候,可以使用screen,它的特點(diǎn)是用戶退出后程序繼續(xù)運(yùn)行,并且可以切換到原來(lái)窗口中再次查看運(yùn)行情況。

這里說(shuō)一下detach(分離、斷開(kāi)),表示用戶離開(kāi)當(dāng)前shell窗口,并將其放到后臺(tái)繼續(xù)執(zhí)行。并通過(guò)screen -r重新登錄(attach,附件、連接物)繼續(xù)后面的操作。

下面實(shí)例終端中的


創(chuàng)建一個(gè)新的shell窗口,建議取一個(gè)名字,8506是進(jìn)程號(hào),可以通過(guò)kill殺死它。也可以使用簡(jiǎn)便方法直接在screen后面跟shell命令,比如:screen -r test vi ./gongbing.txt

[root@localhost ~]# screen -ls

There are screens on:

8334.pts-0.localhost(Detached)

8506.gong(Detached)#從shell窗口分離出來(lái)了,可以重新登錄。

8580.cpfrom56(Attached)#表示此shell窗口并沒(méi)有被分離出來(lái),使用 screen -d 8506解決。

3 Sockets in /var/run/screen/S-root.


[root@localhost ~]# screen -S cpfrom56創(chuàng)建一個(gè)新的shell窗口

[root@localhost ~]# ps -axu |grep 8506

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

root ? ? ? 8506? 0.0? 0.1 118776? 1556 ?? ? ? ? Ss ? 16:38 ? 0:00 SCREEN -S gong


查看運(yùn)行中的screen程序screen-ls

BingGongtekiMacBook-Pro:~ binggong$ screen -ls

There is a screen on:

1396.ttys000.BingGongtekiMacBook-Pro(Detached)

1 Socket in /var/folders/dw/wp5cbg3j121_1lvp89533qlr0000gn/T/.screen.


進(jìn)入某一個(gè)screen程序screen-rid

BingGongtekiMacBook-Pro:~ binggong$ screen -r 1396

[screen is terminating]

一個(gè)shell窗口中創(chuàng)建多個(gè)窗口可以使用ctrl+a+n的方法,切換窗口使用ctrl+a+p,從當(dāng)前子shell中分離出來(lái)ctrl+a+d。

任務(wù)完成,退出操作,exit。

shell窗口屏幕共享給其他用戶,其他用戶遠(yuǎn)程登錄服務(wù)器后通過(guò)screen -ls查看想要共享的shell窗口,通過(guò)screen -x pid來(lái)實(shí)現(xiàn)共享同一個(gè)shell窗口,方便做演示使用。

screen命令詳解:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html




轉(zhuǎn)載于:https://blog.51cto.com/137783/1916974

總結(jié)

以上是生活随笔為你收集整理的七、Linux脚本进阶和进程管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人动态视频 | 国产在线国偷精品免费看 | 久久久资源 | 亚洲乱码少妇 | 黄视频网站免费看 | 青青操在线观看视频 | 国产一级一区二区 | 日韩涩| 亚洲欧美国产精品久久久久久久 | 麻豆porn | 久操新在线 | 亚洲精品中文字幕乱码三区 | 88av在线视频 | 男人天堂色 | 国产乱子轮xxx农村 岛国久久久 | 91视频免费网址 | 二色av| 国产懂色av | 久久久久久久久久网 | 中文字幕av一区二区 | 午夜精品久久久久久久91蜜桃 | 另类男人与善交video | 荫道bbwbbb高潮潮喷 | 无遮挡又爽又刺激的视频 | xxxwww在线观看| 91大神视频在线播放 | 打开免费观看视频在线播放 | 无码av免费精品一区二区三区 | 国产一区二区三区视频免费在线观看 | 男女操操操 | 国产suv精品一区二区33 | 欧美中文一区 | 国产传媒在线播放 | 久久久国产精品无码 | 看一级大片 | 正在播放经典国语对白 | 久热青草| 成年人视频免费看 | 性农村xxxxx小树林 | 日韩精品国产一区二区 | 亚洲精品永久免费 | 国产精品第八页 | 国产欧美一区二区三区视频 | 亚洲精品日韩精品 | 亚洲激情综合网 | 看片网址国产福利av中文字幕 | 日日躁夜夜躁白天躁晚上躁91 | 天堂va蜜桃一区 | 99热免费 | 久久视频在线播放 | 日韩免费一区二区 | 欧美人与动性xxxxx杂性 | 91国偷自产中文字幕久久 | 老司机成人免费视频 | 国产精品一区二三区 | 尤物视频免费在线观看 | 高h奶汁双性受1v1 | 山村淫强伦寡妇 | 国产美女无遮挡免费 | 久久亚洲精精品中文字幕早川悠里 | 欧美日韩在线视频一区二区三区 | 欧美另类色图 | 青青青在线视频免费观看 | 91在线免费网站 | 深夜福利院 | 欧美性三级 | 在线一区二区三区 | 男女在线观看视频 | 欧美日韩在线观看一区二区三区 | 日韩v欧美 | 精品熟女一区二区三区 | 日本美女性爱视频 | 天天干天天弄 | 黄色片网站在线观看 | 天堂福利在线 | 国产91九色 | 韩国性经典xxxxhd | 亚洲精品乱码久久久久99 | 永久免费在线播放 | 欧美网| 亚洲另类xxxx | 国产精品毛片一区 | 亚洲一区二区 | 欧美a性 | 久草国产精品 | 午夜国产一区二区三区 | 日韩123| 老司机午夜影院 | 亚洲私人影院 | 天天干天天插天天射 | 亚洲春色www | 免费在线观看的av | 99视频在线观看视频 | 日日夜夜艹 | 久久久久久久黄色片 | 国产精品99久久久久久久女警 | 一区二区三区视频在线观看免费 | 中文字幕免费在线播放 | 天天综合永久 |