Linux實操篇之程序管理與服務管理

2021-10-03 04:33:03 字數 3244 閱讀 7739

顯示系統中的程序

ps:顯示系統中正在執行的程序。

顯示的資訊:

pid:程序識別號

tty:終端機號

time:此程序所消耗cpu時間

cmd:正在執行的命令或程序名

選項:-a:顯示當前終端的所有程序資訊

-u:以使用者的格式顯示程序資訊

-x:顯示後台程序執行的引數

一般使用方式:

ps -aux | more

ps -aux | grep ***

ps -ef | more

-ef是以全格式顯示當前所有的程序,-e顯示所有程序,-f全格式。結果中可以檢視pid的父程序ppid,ppid為0表示沒有父程序。

終止程序

kill [選項] 程序號

killall 程序名稱,通過程序名稱殺死程序,支援萬用字元,這在系統因負載過大而變得很慢時很有用

常用選項:

-9:強迫程序立即停止

示例:

1.踢掉xshell sshd登入的使用者

(1)先使用ps -aux | grep sshd 查詢到所有包含sshd的程序,在結果中找到對應使用者遠端登入的程序號pid

(2)kill pid

2.終止遠端登入服務sshd,在適當的時候再次重啟sshd服務

(1)在程序列表中找到sshd服務對應的程序號pid

(2)kill pid,這時在遠端就不能進行登入,但不會踢掉已經登入的使用者

(3)重啟電腦會自動開啟sshd服務,也可以手動開啟sshd服務

service sshd status

service sshd stop

service sshd start

3.終止多個gedit編輯器

gedit:圖形介面下的文字編輯器

(1)使用多個終端執行多次gedit命令開啟多個gedit編輯器

(2)新開乙個終端執行killall gedit指令就會殺死所有的gedit編輯器

如果乙個父程序開了很多子程序,那麼使用這個指令殺死父程序,就一窩端了,會把所有子程序也殺死

4.強制殺掉乙個終端

(1)乙個終端就是乙個bashshell,多開幾個終端,使用ps -aux | grep bash查詢終端對應的pid

(2)終端是比較重要的程序,不能直接關閉,所以使用-9強制關閉。kill -9 pid

檢視程序樹

pstree [選項]

以樹狀的結構更加直觀的檢視程序資訊

常用選項:

-p:顯示程序的pid

-u:顯示程序所屬使用者

動態監控程序

top與ps都用來顯示正在執行的程序,不同之處在於top在執行一段時間之後可以更新正在執行的程序,類似於windows的任務管理器。

top [選項]

常用選項:

-d:指定top命令每隔幾秒更新,預設是3秒

-p:使top不顯示任何閒置或僵死zombie程序

-i:通過指定pid來僅監控某個程序的狀態

互動操作,注意區分大小寫:

p:以cpu使用率排序,也是預設

m:以記憶體使用率排序

n:以pid排序

u:輸入使用者名稱,只顯示某乙個使用者

k:輸入程序號,kill程序

q:退出top

服務本質就是程序,但是執行在後台,因此又稱為守護程序,通常會監聽某個埠,等待其他程式的請求,比如mysql、sshd、防火牆iptables等。

監控網路(服務)狀態

netstat [選項]

只有網路服務才會監聽埠,所以使用這個指令可以看到正在監聽的埠

常用選項:

-an:按一定順序排列輸出

-p:顯示哪個程序正在呼叫

常用示例:

netstat -anp | more,檢視所有的網路服務

netstat -anp | grep ***,專門檢視某乙個網路服務

netstat -ntlp 檢視埠監聽狀態

檢視系統服務

1.setup指令 -> 選擇系統服務,有*的服務就是開機自啟動服務

2./etc/init.d/服務名稱

對服務進行操作

sevice 服務名 [start | stop | restart | reload | status]

centos7以後有的服務使用systemctl:system control

windows中可以使用telnet命令檢查linux某個埠是否在監聽,並且可以訪問(即檢測是否啟用了某個服務)。

telnet 目標ip 目標埠 例如:telnet 192.168.40.5 22 檢測sshd服務是否啟動

使用service對服務進行操作只是臨時的,reboot之後會返回以前對服務的設定,如果希望永久生效,需要使用chkconfig

centos 7下防火牆服務的操作

centos 7下防護牆是firewalld不再是iptables,所以不能使用service iptables status

centos 7下使用防火牆:systemctl start firewalld

具體可以參考以下兩篇

centos 7防火牆詳解

防火牆常用命令

服務的執行級別–runlevel

這裡的執行級別其實和前面講的執行級別是同乙個概念。每乙個服務在不同執行級別下的自啟動狀態是不同的,開機啟動的時候init程序會在/etc/inittab中讀取預設執行級別,然後啟動這個執行級別下自啟動的服務。

chkconfig

chkconfig命令可以給各個執行級別設定自啟動/關閉。

基本語法:

chkconfig --list | grep ***

chkconfig 服務名 --list

chkconfig --level 5 服務名 on/off

chkconfig和service設定的區別:

service設定的是服務當前狀態開啟或關閉,不影響自啟動;chkconfig設定的是是否開啟這個服務的自啟動,不影響當前的狀態。所以reboot之後service的修改不再生效,chkconfig的設定開始生效。

注意!!!

centos 7下chkconfig輸出結果只顯示 sysv 服務,並不包含

原生 systemd 服務。要列出 systemd 服務,請執行 『systemctl list-unit-files』。

linux實操篇 程序管理

程序管理 程序的基本介紹 在linux中,每個執行的程式都稱為乙個程序。每個程序都分配一id 每乙個程序,都會對應乙個父程序,這個父程序可以複製多個子程序 每個程序都可能以兩種方式存在,前台與後台,前台程序必須要在終端中執行,終端關閉或中斷都會使該程序結束,後台程序則是實際在操作,但螢幕上無法看到,...

Linux實操篇 使用者管理

linux系統是 乙個多使用者多工的作業系統,任何乙個要使用系統資源的使用者,都必須首先向系統管理員申請 乙個賬號,然後以這個賬號的身份進入系統。linux的使用者需要至少要屬於乙個組。useradd 選項 使用者名稱 新增乙個使用者xm 當建立使用者成功後,會自動的建立和使用者同名的家目錄。也可以...

Linux(實操篇) 使用者管理

示意圖 說明 linux系統是乙個多使用者任務的作業系統,任何乙個要使用系統資源的使用者,都必須首先向系統管理員申請乙個賬號,然後以這個賬號的身份進入系統。linux的使用者至少需要屬於乙個組。基本語法 useradd 選項 使用者名稱 cd change directory,切換目錄 當建立使用者...