我們在使用任何操作系統的時候都會打開一些應用程序,那麼打開程序就會開啓一個進程,我們在使用windows系統的時候,有時候開一個QQ,同時開一個遊戲,還可以打開音樂播放軟件,打開程序過多會消耗大量的內存和cpu是得系統有時候會感覺很卡頓,那麼在Linux下如何管理進程呢,接下跟大家分享下linux系統下linux進程管理。
靜態管理進程
ps -e 列出所有進程的相關信息
PID TTY TIME CMD
1號進程爲一切進程的父進程 init
pstree 以樹狀形式列出進程
ps -ef
UID PID PPID C STIME TTY TIME CMD
進程擁有者
?臨時執行 退出 不佔用狀態
ps au
USER PID %CPU %MEM VSZ RSS TTY STAT START
%CPU cpu的使用率
%MEM 內存的使用率
VSZ 虛擬內存
RSS 內存頁
START 何時開啓的進程
ps axo pid,pri,nice,%cpu,%mem,command | grep vsftpd
ps -p pid
ps u -p 6917
-e/-A 所有進程
a 所有的tty (BSD-style)
f 全格式顯示
PPID顯示父進程
ps -u root 查看指定用戶開啓哪些進程
ps a
PID TTY STAT TIME COMMAND
1.進程ID
2.控制檯
3.進程狀態
STAT 進程的狀態:
R 正在運行的進程
S 可以中斷的休眠進程
T 停止/暫停的進程
D 不可中斷的進程
Z zombie 殭屍進程
X 退出狀態
s 還有子進程
l 鎖住內存頁的內存
N 優先級比較低的進程
< 高優先級的進程
4.消耗cpu時間
5.進程的名稱
ps -ef
ps aux
ps axo
netstat -tulnp
t:基於tcp的協議
u:基於udp的協議
l:listening 偵聽 如果偵聽表示該服務正在運行
n:不做域名解析
p:進程名
lsof -i:80 查看80端口是否監聽
pidof vsftpd 查看進程的pid (只可以查看正在運行中的服務的PID)
進程動態管理
uptime
11:30:15 up 2:37, 4 users, load average: 1.02, 1.01, 0.95
當前系統時間 開啓了多久 4個用戶 每1、5、15分鐘的平均負載
top
%us 用戶空間使用率
%sy 內核空間
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1.pid
2.進程的擁有者
3.PRI Priority 優先級
4.nice 值
5.6
7.SHR 共享內存 實現不同進程間訪問的主要機制
8.S進程狀態
9.cpu使用率
10.內存使用率
11
12
top
P CPU
M men
k pid
Z 帶顏色顯示
q 退出
top -u redhat 動態查看redhat用戶信息
top -p 1 查看指定pid信息
/proc
cat /proc/meminfo 查看內存狀態
cat /proc/cpuinfo 查看cpu詳細信息
路由轉發
臨時
echo 1 > /proc/sys/net/ipv4/ip_forward
永久
echo "echo 1 > /proc/sys/net/ipv4/ip_forward " >> /etc/rc.local
環境變量的配置文件
~/.bashrc ~/.bash_profile /etc/profile /etc/bashrc
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p 讓當前配置立即生效
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 放置ping
----------------------------------------------------------------
進程管理(kill)
kill [signal] pid
pidof vsftpd
6917
kill 6917
kill -15 15185
kill -9 15185 強制
信號
man 7 signal = kill -l
1 reload 重新加載配置文件不影響業務
2 ctrl+c 強制中斷
9 強制殺死進程
15 正常殺死進程
17 暫停
18 恢復
進程調度(前後臺切換)
進程前臺:
佔用當前shell 當shell關閉 進程就結束
後臺
xeyes & 當shell關閉 進程就結束
ctrl+z 把前臺正在運行的進程放後臺處理 且是停止的狀態
ctrl+c 殺死當前的進程 強制終止
nohup xeyes & 把進程放在後臺運行 不佔用當前的shell
pkill httpd 按照程序名殺死進程
------------------------------------------------------------------
進程的前後臺切換
查看作業號
jobs
[1]- Running xeyes &
[2]+ Running xeyes &
A:1、2 表示作業號
B:+當前的進程
-表示當前進程的上一個進程
C:狀態
把後臺進程放到前臺工作
fg %1
ctrl z --->把前臺進程後臺且終止
把後臺暫停的進程放在後臺繼續運行
bg %1
kill %1 殺死第一個作業所在的進程
---------------------------------------------------------------------
進程優先級調整
進程優先級不可以直接調整靠Nice值,通過Nice值的調整來影響pri的值
好心值範圍
-20(最大優先級) 到 19 (最小優先級)
可以在進程開啓的時候指定一個優先級
ps axo pid,nice,pri,command | grep vsftpd
15220 0 19 /usr/sbin/vsftpd
開啓一個進程默認的Nice值爲0 優先級19
nice值越大 ----》 pri越優先(越小)
在服務開啓的時候指定其運行的優先級
nice -n 1 xeyes nice --->1
17483 1 18 xeyes
nice -n -1 firefox & nice --->-1
針對已經定義的優先級的調整
renice -5 17803
注意:renice後接的數字是指你想最終設置爲-5(nice)