1.进程是已启动的可执行程序的运行实例,进程有以下组成部分: • 已分配内存的地址空间; • 安全属性,包括所有权凭据和特权; • 程序代码的一个或多个执行线程; • 进程状态。 程序: 二进制文件,静态 /usr/bin/passwd ,/usr/sbin/useradd 进程: 是程序运行的过程, 动态,有生命周期及运行状态。 2.进程的生命周期:父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。 每个新进程分配一个,唯一的进程 ID (PID),满足跟踪安全性之需。 任何进程都可以创建子进程。 所有进程都是第一个系统进程的后代: 3.在多任务处理操作系统中,每个CPU(或核心) 在一个时间点上只能处理一个进程。 在进程运行时,它对CPU 时间和资源分配的要求会不断变化, 从而为进程分配一个状态,它随着环境要求而改变。 4. 静态查看进程状态ps
5. ps aux :ps a 显示现行终端机下的所有程序 ps u 以用户为主的格式来显示程序状况。
ps x 不以终端机来区分。 6. USER: 运行进程的用户 PID: 进程ID %CPU: CPU占用率 %MEM: 内存占用率 VSZ: 占用虚拟内存 RSS: 占用实际内存 TTY: 进程运行的终端 STAT: 进程状态 (R:运行) (S:睡眠;sleep) (T:停止的进程) (Z:僵尸进程) (X:死掉的进程) START: 进程的启动时间 TIME: 进程占用CPU的总时间 分钟:秒 COMMAND: 进程文件,进程名 7.进程排序: ps aux --sort %cpu 减号是降序: ps aux --sort -%cpu 8.进程的父子关系:ps -ef 9.自定义显示字段:pa axo ps axo user,pid,ppid,%mem,command | head -3 10.动态查看进程:top (1)top - 11:45:08 up 18:54, 4 users, load average: 0.05, 0.05, 0.05 (2)Tasks: 176 total, 1 running, 175 sleeping, 0 stopped, 0 zombie (3)%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st (4)KiB Mem : 3865520 total, 1100000 free, 580268 used, 2185252 buff/cache (5)KiB Swap: 4063228 total, 4063228 free, 0 used. 2917828 avail Mem 9.字段介绍: (1)VIRT:virtual memory usage 虚拟内存;需要这些内存,但并没有占满。 (2)RES:resident memory usage 常驻内存;用了多少内存 (3)SHR:shared memory 共享内存;1、除了自身进程的共享内存,也包括其他进程的共享内存 2、共享内存大小公式:RES – SHR 10.top常用内部指令 h|?帮助 M 按内存的使用排序 P 按CPU使用排序 N 以PID的大小排序

                                 < 向前
                                 > 向后
                                z 彩色,Z设置彩色,使用数字调整

11.使用信号控制进程kill 信号种类: 给进程发送信号(kill -l列出所有支持的信号) [root@localhost ~]# kill -l 编号 信号名

  1. SIGHUP 重新加载配置
  2. SIGINT 键盘中断Ctrl+C
  3. SIGQUIT 键盘退出Ctrl+\,类似SIGINT
  4. SIGKILL 强制终止,无条件
  5. SIGTERM 终止(正常结束),缺省信号
  6. SIGCONT 继续
  7. SIGSTOP 暂停 20)SIGTSTP 键盘暂停Ctrl+Z 12.创建两个文件,查看终端号 :touch 1.1 touch2.2 第三个终端查询两个进程 ps aux |grep vim 13.发送信号15 :kill -15 7184 14.输入信号9 :kill -9 7207 观察两个终端,一个正常终止,一个非法杀死。 15.作业控制 jobs
    作业控制是一个命令行功能,也叫后台运行。 foreground 简称 fg 前台进程:是在终端中运行的命令,占领终端。 background简称 bg 后台进程:没有控制终端,它不需要终端的交互。看不见,但是在运行。 16.运行一个程序,当前终端无法输入。观察占领前台的现象。 大部分命令行输入已经无效。 leep 2000 ctrl+c 终止进程 17.sheep 3000 &运行后台程序 18.查询运行后台程序 jobs 19.调动后台程序至前台。fg 1 //将作业1调回到前台 20.消灭后台进程 : kill %1 注意,“kill 1” 和 “kill %1” 不同, 前者终止PID为1的进程, 后者杀死作业序号为1的后台程序。 21.虚拟文件系统proc 简介:虚拟文件系统:采集服务器自身 内核、进程运行的状态信息 cpu:/proc/cpuinfo 内存:/proc/meminfo 内核:/proc/cmdline