RH033 Unit 11 Investigating and Managing Processes Part I: Process Management

什么是进程
简单的理解,一个进程就是载入在内存中的一组程序指令,是一个应用程序的运行实例
我们通常使用进程号(PID)来对进程进行识别,当然进程同样也包含有UID、GID和SELinux安全上下文等一些从执行者那里继承过来的权限和属性
查看进程信息
ps:列出进程,默认显示当前终端的进程
SolidCaptureImage9519359
参数
-a:列出所有终端的进程
-x:列出那些不依赖终端运行的进程,也就是列出后台进程
SolidCaptureImage9670562
-u:列出进程拥有者信息
SolidCaptureImage9730015
-f:树形方式列出进程(以父子关系形式显示)
SolidCaptureImage9863296
-o:自定义需要显示的信息
  • pid,comm,%cpu,%mem,state,tty),ruser(real user ID 实际用户ID),euser(effective user ID 有效用户ID)
SolidCaptureImage12516796
 
※ 解释一下ruser和euser的区别(困扰了我很长一段时间啊T_T)
看一下/usr/bin/passwd命令和/etc/passwd文件的权限
SolidCaptureImage11788250
发现该命令的属主和属组全是root,而文件也只有root才具有修改权限,但实际上普通用户是可以执行passwd命令来修改/etc/passwd文件的,只不过只能修改自己的密码,这不就冲突了吗?/etc/passwd的other上并没有w权限,为什么普通用户还可以更改?
因为/usr/bin/passwd的user上有一个s位,意思是SUID位(先不管什么是SUID,以后讲),只要是程序具有了SUID位,那么该程序无论哪个用户执行的时候,都会具有该程序属主的权限;也就是说,虽然是wwb这个普通用户在执行/usr/bin/passwd,但实际上执行的时候会暂时将wwb的身份设置成root,从而使该次执行暂时具有了root权限,也就可以更改/etc/passwd文件内容了;那么,其中wwb这个用户是程序的执行者,我们称之为real user,而root是这个程序执行时所具有的文件访问权限,我们称之为effective user,这样就理解了吧
另开一个终端以普通用户wwb身份登录并执行passwd命令,然后切到root这边,用ps命令看一下,指定显示命令名、实际用户、有效用户
SolidCaptureImage11566765
passwd命令的实际用户也就是执行者是wwb,但有效用户也就是其具有的权限是root
 
查找进程
两种查找方式,一种通过管道+过滤方式,一种通过命令
比如现在要查找wwb用户的进程,可以ps命令并将结果通过管道传送给grep命令过滤出wwb
SolidCaptureImage14146968
pgrep �CU wwb:直接过滤出wwb用户进程
SolidCaptureImage14262125
但执行完后只会给出该用户进程的pid,可以用ps命令查看该pid的详细信息
pidof:已经知道了进程名称,想查看该进程的pid
SolidCaptureImage14472468
 
信号signal
进程间通信通常采用信号来完成,这个过程没有用户界面,不同的信号会关联不同的程序动作,这东西细讲起来挺麻烦,这里只列出几个常用的信号吧
Signal 15,TERM(default)- 正常终止进程
Signal 9,KILL - 迅速终止进程
Signal 1,HUP - 这个我们还没太搞清楚,有些文章说是Hangup挂断进程,有些则说针对一些服务的守护进程进行配置文件的重载入
具体的解释看一下“man 7 signal”吧
 
如何向进程发送信号
常用的有三种方式:
pid:kill [信号] pid
SolidCaptureImage15386734
完全匹配进程名称:killall [信号] 进程名
SolidCaptureImage15456015
模糊匹配进程名称:pkill [-信号] 名称
SolidCaptureImage15586593
 
调整进程优先级
进程优先级用来控制进程对cpu资源的使用,而优先级通常被指定为nice值,范围由-20~19,默认为0,nice值越低,使用cpu资源的优先级越高
查看一下当前进程的nice值吧
SolidCaptureImage15896390
可以在运行命令时输入
nice �Cn 5 passwd,进程启动时便具有5的优先级
SolidCaptureImage16237187
也可以在运行后重新调整
renice 8 pid
SolidCaptureImage16360562
但是普通用户只能提高nice值,也就是降低优先级,而只有root可以降低nice值,提高优先级
SolidCaptureImage16555265
程序运行控制
ctrl+z:挂起某个程序
比如,程序在运行过程中,按下ctrl+z,可暂时停止运行该程序,但并不结束程序
bg:将挂起程序打入后台运行
fg:将后台程序调入前台运行
jobs:查看当前挂起的程序列表
SolidCaptureImage17160312
 
上面说的进程查看命令都只是静态显示,系统也提供了动态实时更新的查看工具
CLI:top
GUI:gnome-system-monitor

你可能感兴趣的:(unit,process,part,Management,Managing)