一.进程的简介
1.什么是进程
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态。
程序: 二进制文件,静态 /usr/bin/passwd ,/usr/sbin/useradd
进程: 是程序运行的过程, 动态,有生命周期及运行状态。
2.进程的生命周期
父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。
每个新进程分配一个,唯一的进程 ID (PID),满足跟踪安全性之需。
任何进程都可以创建子进程。
所有进程都是第一个系统进程的后代:
Centos5/6系统进程: init
Centos7系统进程: systemd
3.进程状态
进程状态产生的原因:在多任务处理操作系统中,每个CPU(或核心)
在一个时间点上只能处理一个进程。
在进程运行时,它对CPU 时间和资源分配的要求会不断变化,
从而为进程分配一个状态,它随着环境要求而改变。
二.进程管理process
1.静态查看进程ps
① ps aux | head -2 查看静态进程头部2行
ps aux | grep 查询进程
ps aux 输出的字段含义:
user:运行进程的用户
pid:进程的id,我们云工程师靠pid,杀死他
%cpu:CPU占用率
%mem:内存占用率
vsz:占用虚拟内存
rss:占用实际内存
tty:进程运行的终端
stat:进程状态 (R:运行 S:睡眠 T:停止的进程 Z:僵尸的进程 X:死掉的进程 )
start:进程的启动时间
time:进程占用cpu的总时间
commamd:进程文件,进程名
②进程排序:ps aux --sort %cpu 以cpu占比降序排列
③进程的父子关系:ps -ef 产看进程的父子关系,请观察pid ppid
④自定义显示字段 :ps axo … … …
2.动态查看进程top
top常用内部指令:
h|?帮助
M 按内存的使用排序
P 按CPU使用排序
N 以PID的大小排序
< 向前
向后
z 彩色,Z设置彩色,使用数字调整
top技巧:
动态查看进程 top,像windows的任务管理器
[root@localhost ~]# top //回车,立刻刷新。按z彩色显示,按F,通过光标设置列的顺序。
[root@localhost ~]# top -d 1 //每1秒刷新。
[root@localhost ~]# top -d 1 -p 10126 查看指定进程的动态信息
[root@localhost ~]# top -d 1 -p 10126,1 查看10126和1号进程
3.使用信号控制进程kill
给进程发送信号(kill -l列出所有支持的信号)
[root@localhost ~]# kill -l
编号 信号名
- SIGHUP 重新加载配置
- SIGINT 键盘中断Ctrl+C
- SIGQUIT 键盘退出Ctrl+\,类似SIGINT
- SIGKILL 强制终止,无条件
- SIGTERM 终止(正常结束),缺省信号
- SIGCONT 继续
- SIGSTOP 暂停
20)SIGTSTP 键盘暂停Ctrl+Z
1 创建2个文件,查看终端号。
[root@localhost ~]# touch file1 file2
2 通过一个终端,打开一个vim
[root@localhost ~]# vim file1
3 通过另一个终端,打开一个vim
[root@localhost ~]# vim file2
3 通过另一个终端,查询两个进程。
[root@localhost ~]# ps aux |grep vim
root 4362 0.0 0.2 11104 2888 pts/1 S+ 23:02 0:00 vim file1
root 4363 0.1 0.2 11068 2948 pts/2 S+ 23:02 0:00 vim file2
4 发送信号15 和信号9 ,观察两个终端程序状态。
[root@localhost ~]# kill -15 4362
[root@localhost ~]# kill -9 4363
观察两个终端,一个正常终止,一个非法杀死。