Linux系统配置及服务管理之进程管理

一、简介

1.进程简介

进程是已启动的可执行程序的运行实例,进程有以下组成部分:
  • 已分配内存的地址空间;
  • 安全属性,包括所有权凭据和特权;
  • 程序代码的一个或多个执行线程;
  • 进程状态。

程序: 二进制文件,是静态的   例如/usr/bin/passwd ,/usr/sbin/useradd
进程: 是程序运行的过程, 动态,有生命周期及运行状态。

图形举例说明:
Linux系统配置及服务管理之进程管理

2.进程的生命周期

父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。
每个新进程分配一个,唯一的进程 ID (PID),满足跟踪安全性之需。
任何进程都可以创建子进程。
所有进程都是第一个系统进程的后代:
 Centos5/6系统进程: init
 Centos7系统进程: systemd

3.进程状态

产生状态的原因:
在多任务处理操作系统中,每个CPU(或核心)在一个时间点上只能处理一个进程。在进程运行时,它对CPU 时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。

图示:
Linux系统配置及服务管理之进程管理

状态字母释义:

Linux系统配置及服务管理之进程管理

二、PS-----静态查看进程

1.简介

PS==precess status(进程状态)≠photoshop ,功能和Windows系统的任务管理器类似
例如:
Linux系统配置及服务管理之进程管理
命令释义:
 -a 显示现行终端机下的所有程序
 -u 以用户为主的格式来显示程序状况。
 -x 不以终端机来区分。

结果含义:
 USER: 运行进程的用户
 PID: 进程ID
 %CPU: CPU占用率
 %MEM: 内存占用率
 VSZ: 占用虚拟内存
 RSS: 占用实际内存
 TTY: 进程运行的终端
 STAT: 进程状态
 START: 进程的启动时间
 TIME: 进程占用CPU的总时间(分钟:秒)
 COMMAND: 进程文件,进程名

2.进程排序

语法:#ps aux --sort %cpu     //以CPU占比升序排列
   #ps aux --sort %-cpu     //以CPU占比降序排列

3.进程的父子关系

语法:#ps -ef
Linux系统配置及服务管理之进程管理
PID为该程序的ID,PPID为该程序的父ID。

4.自定义显示查看进程内容

语法:#ps axo 内容1,内容2,内容3…
例如:#ps axo user,pid,ppid,%mem,command

三、TOP-----动态查看进程

1.简介

命令:#top
Linux系统配置及服务管理之进程管理

2.内容含义

Top - 11:45:08   up 18:54,  4 users   load average: 0.05,0.05,0.05
程序名-系统时间  运行时间  登录用户数   CPU负载1 5 15分钟
Tasks: 176 total,  1 running,   175 sleeping,   0 stopped,   0 zombie
总进程数176    运行数1    睡眠数175    停止数0   僵死数0
%Cpu(s): 0.0 us,   0.3 sy,   0.0 ni,  99.7 id,  0.0 wa,  0.0 hi,  0.0si,  0.0 st
CPU使用占比:用户  系统    优先级   空闲     等待   硬件   软件   虚拟机
KiB Mem :   3865520 total,  1100000 free,  580268 used,  2185252 buff/cache
物理内存:   总共4Gfree    空闲1G    已使用500M  cache缓存硬盘内容2G
KiB Swap:   4063228 total,   4063228 free,  0 userd,    2917828 avail Mem
交换分区    总共4G      free空闲4G   used使用0    下次可用的空间3G

PID   USER   PR    NI   VIRT   RES   SHR  S  %CPU  %MEM   TIME+ COMMAND
程序ID   用户名  优先级   优先级   虚拟内存   已用内存  共享内存
  状态   CPU占比   内存占比   程序运行时间   程序命令

其中:PR和NI均为程序优先级,区别在下面讲解
   VIRT是虚拟内存,表示该程序需要这些内存,但未占满
    SHR是共享内存,除了进程本身的共享内存,也包括其他程序的共享内存

top常用内部指令:
 H/? 帮助
 M 按内存的使用排序
 P 按CPU使用排序
 N 以PID的大小排序
 < 向前
 > 向后
 z 彩色,Z设置彩色,使用数字调整
#top         //回车,立刻刷新。按z彩色显示,按F,通过光标设置列的顺序。
#top -d 1      //每1秒刷新。
#top -p 10126,1    //查看10126和1号进程

四、kill-----控制进程

信号种类:#kill -l
Linux系统配置及服务管理之进程管理
常见常用的有:
1) SIGHUP  重新加载配置
2) SIGINT  键盘中断,相当于Ctrl+C
3) SIGQUIT  键盘退出,相当于Ctrl+\,与SIGINT类似
9) SIGKILL  强制终止,无条件、非法杀死
15) SIGTERM  终止(正常结束),缺省信号
18) SIGCONT  继续
19) SIGSTOP  暂停
20)SIGTSTP  键盘暂停,相当于Ctrl+Z

五、nice-----进程优先级

简介:
 Linux 进程调度及多任务,每个CPU在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序。

范围:(上面代表nice,下面代表PR)
Linux系统配置及服务管理之进程管理

特性:
nice 值越大: 表示优先级越低,例如+19
nice 值越小: 表示优先级越高,例如-20

查看进程的nice:
#ps axo pid,command,nice --sort=-nice

启动一个指定nice的程序:
#nice -n -10 sleep 7000 &

更改现有进程的nice:
首先创建一个程序:
#sleep 7000 &
[2] 2669
然后修改nice
#renice -20 2669
2669 (进程 ID) 旧优先级为 0,新优先级为 -20,观察修旧的nice值。

六、Jobs-----作业控制

简介:作业控制是一个命令行功能,也叫后台运行。

关键词:
  fg(foreground):前台进程:是在终端中运行的命令,占领终端。
   例如:# sleep 2000
  bg(background):后台进程:没有控制终端,看不见,但是在运行。
   例如:# sleep 3000 &

查看后台进程:#jobs   //+,-代表,使用fg时,默认调动至前台的进程。先是+,后是-

调动后台程序至前台:#fg 1   //将作业1(前面的序号)调回到前台

消灭后台进程:# kill %1   //杀死作业序号为1的后台程序。

七、Proc-----虚拟文件系统

Proc文件目录:虚拟文件系统:采集服务器自身 内核、进程运行的状态信息
 存放CPU信息文件: /proc/cpuinfo
 存放内存信息文件: /proc/meminfo
 存放内核信息文件: /proc/cmdline

上一篇:JAVA基础几个常用类


下一篇:Linux 进程的控制与进程之间的关系