Linux下进程的管理 ps nice renice

进程管理

进程定义

一个程序被加载到内存当中运行,那么在内存内的那个数据就被称为进程(process)。

ps命令

** 进程状态:
R(Running):该程序正在运行中或者在运行队列中等待;
S(Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(signal)。
D:不可被唤醒的睡眠状态,直到有中断发。 可能在等待I/O 。
T:停止状态(stop):可能是在工作控制(背景暂停)或除错(traced)状态,(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行)
Z:僵尸状态(Zombie): 程序已经终止但却无法被移除至内存外。

top:动态监控进程,查看进程信息

1:显示cpu每个核的负载
s:修改进程刷新间隔时间。
m:根据内存占有率进行排序。
c:根据cpu占有率进行排序。
u:后面输入用户名,用来查看该用户发起的所有进程。
k:后面跟要作用的进程pid,和发起的信号(eg:9,15,20)用来给某个进程发起一信号。
q:退出进程查看界面。
h:显示top命令的帮助。

**查看进程:

     ps  a     ##关于当前环境的所有进程 
        -a     ##关于当前环境的所有进程,但不包含shell环境信息本身
        -A     ##所有进程  
         x     ##所有进程,包括tty输出设备,通常与a一起使用
         f     ##现实进程从属关系  
         e     ##显示进程调用环境工具的详细信息   
         l     ##长列表显示进程的详细信息
         u     ##显示进程的用户信息

ps常用组合:

ps aux           ##查看系统所有的进程数据并显示进程用户
ps ef            ##显示进程详细信息并显示进程父子关系
ps ax            ##显示当前系统中的所有进程
pstree           ##显示当前系统的进程树
 
ps aux|grep vim  ##grep是一个多用途的文本搜索工具

ps ax -o  %cpu  ##显示进程cpu使用率
          %mem  ##显示进程内存使用率 
          user  ##进程所有用户  
          group ##进程所有组  
          comm  ##进程名称   
          nice  ##进程优先级
          pid   ##进程的id 
          stat  ##进程状态

**stat中显示的信息

S ##进程状态
l ##内存中有锁定空间
N ##优先级低
< ##优先级高
+##前台运行
s ##顶级进程

ps ax -o %cpu,%comm --sort<+|-%cpu><+|-%mem>  
                  ##按照进程信息排序

+##正序
-##倒序
%cpu ##cpu负载排序
%mem ##内存负载

ps ax -o pid,%mem  --sort=-%mem | head -n 6
                  ##按照内存负载降序排序,显示前六

进程优先级

1.进程的优先级范围

-20 ---- +19
-代表 高
+代表 低

2.优先级查看

ps ax -o pid,nice,comm

3.指定某个优先级开启进程

nice -n 优先级数字 进程名称
nice -n   -5      vim &      ##开启vim并且指定程序优先级为-5
nice -n   -5     gedit &     ##建立一个优先级为-5的gedit

4.改变进程优先级

renice -n 优先级数字 进程pid
renice -n   -5      1806     ##改变1806进程的优先级为-5

环境中进程的前后台调用

工作管理是用在bash环境下的,当我们登录系统取得bash
shell之后,在单一终端接口下同时进行多个工作的行为管理。
举例来说,我们在登陆bash后,想要一边进行数据搜寻、一边
打开浏览器,还可以一边进行vim程序撰写!这个就牵扯到工作
的前后台管理

1、前后台调用命令

jobs           ##查看被打入环境后台的进程
ctrl+z         ##把占用终端的进程打入后台
fg jobsnum     ##把后台进程调回前台
bg jobnum      ##把后台暂停的进程运行
comm &         ##让命令直接在后台运行
jobs           ##查看当前bash的job
jobs -l        ##查看当前bash的job,并显示该job的状态与PID

2、进程信号

1 在程序不重启的情况下重新加载配置
2 清除指定程序在内存中的数据
3 清除鼠标在内存中的数据
9 强行关闭某个进程,不会被阻塞
15 正常关闭某个进程,可能会被阻塞
18 继续运行暂停的进程
19 暂停指定进程,不会被阻塞
20 暂停指定进程,会被阻塞
man 7 signal ##查看信号详细信息

3、发起信号

kill -信号 进程pid
 
killall -信号 进程名称
 
pkill 信号 条件     ##pkill -u student -信号

猜你喜欢

转载自blog.csdn.net/qq_36016375/article/details/88919240