首页 > 代码库 > linux进程管理
linux进程管理
我们在使用任何操作系统的时候都会打开一些应用程序,那么打开程序就会开启一个进程,我们在使用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)
linux进程管理