1. 程式人生 > >Linux雲伺服器初學之五 ——程序管理

Linux雲伺服器初學之五 ——程序管理

1.PS命令

PS命令可以檢視當前執行的程序資訊。
Linux上有5種狀態:
1.執行(正在執行或在執行佇列中等待)
2.中斷(休眠中,受阻,在等待某個條件的形成或接受到訊號)
3.不可中斷(收到訊號不喚醒和不可執行,進行必須等待直到有中斷髮生)
4.僵死(進行已終止,但程序描述符存在,直到父程序呼叫wait()系統呼叫後釋放)
5.停止(程序收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU訊號後停止執行)

命令格式:

ps [選項]

這裡寫圖片描述

示例:

ps –列出每一個與當前shell有關的程序的基本資訊
PID TTY TIME CMD
25005 pts/0 00:00:00 bash

其中各個欄位的含義如下:
PID 程序的標誌號
TTY 該經常建立時所對應的終端,如果是?則表示不佔用終端
TIME 顯示程序累計使用的CPU時間
CMD 執行程序的命令
UID 程序屬主的使用者ID
PPID 父程序的ID號
C 程序最近使用的CPU估算
STIME 程序開始時間,以“小時:分”的形式顯示

ps -ef –顯示系統中所有程序的全面資訊
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 125876 4396 ? Ss 9月25 0:04 /usr/lib/syst

ps aux –顯示所有終端上所有使用者的有關程序的所有資訊
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 125876 4396 ? Ss 9月25 0:04 /usr/lib/syst
root 2 0.0 0.0 0 0 ? S 9月25 0:00 [kthreadd]
root

USER: 行程擁有者
PID: pid
%CPU: 佔用 CPU 時間與總時間的百分比
%MEM: 佔用記憶體與系統記憶體總量的百分比
VSZ: 程序佔用的虛擬記憶體空間
RSS: 程序所佔用的記憶體的空間
TTY: 終端的次要裝置號碼 (minor device number of tty)
STAT: 程序當前狀態:
D: 不可中斷的靜止
R: 程序正在執行中(程序排在執行佇列裡,隨時都會被執行)
S: 程序處於睡眠狀態(sleeping)
T: 追蹤或停止
Z: 殭屍程序(zombie),程序已經被終止,但其父程序並不知道,沒有妥善處理
W: 程序沒有固定的分頁可匹配
<: 高優先序的程序
N: 低優先序的程序
L: 有些頁被鎖進記憶體
s: 程序的領導者(在它之下有子程序)
l: 多程序的(使用 CLONE_THREAD, 類似 NPTL pthreads)
+: 位於後臺的程序組
WCHAN 正在等待的程序資源;
START: 程序開始執行的時間
TIME: 執行的時間
COMMAND:所執行的指令

2.kill命令

終止一個程序

命令格式:

kill [選項] 程序PID –程序PID可使用ps或者pidof命令查詢到

ps –ef | grep httpd
pidof httpd
lsof –i:80

kill命令的常用選項:

-l 列出所有kill命令的選項
-1 終端斷線
-2 中斷(同ctrl+c)
-3 退出(同ctrl+\)
-15 終止
-9 強制終止(常用)
-18 繼續程序
-19 暫停程序

示例:

如果我們運行了一個後臺程式,但是我們突然之間又不想它運行了,或者說它佔用了我們想要使用的其他應用的埠,那我們就可以使用kill命令將它的程序殺死

systemctl restart sshd.service –啟動ssh服務

ps -ef |grep sshd
root 31893 1 0 14:47 ? 00:00:00 /usr/sbin/sshd
root 31953 29492 0 15:02 pts/1 00:00:00 grep sshd

lsof -i:22 –檢視ssh服務埠
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 31893 root 3u IPv4 439877 0t0 TCP *:ssh (LISTEN)
sshd 31893 root 4u IPv6 439879 0t0 TCP *:ssh (LISTEN)

pidof sshd –檢視ssh服務的pid
31893

kill 31893 –(預設使用的是-15)

3.job管理

linux 下有前臺和後臺的概念,每個bash終端都可以執行自己的job,注意不能跨bash終端管理
& –後臺執行符,運用程式不會佔用你的終端

firefox http://192.168.1.32 &
[1] 31062 –1代表job號,31062代表的是pid
vim /etc/passwd –在這裡按下ctrl+z鍵,作用是把job暫停到後臺
[2]+ Stopped vim /etc/passwd

jobs –列出後臺job列表,別的終端的看不到

jobs -l –還要列出pid號

fg %1 –把1號job的firefox調到前臺

kill %1