简单介绍
程序:封装好的代码,等待被执行
进程:程序运行起来后,在内存中以进程形式存在
守护进程:一直处于运行状态,在后台运行,提供基础功能
查看进程
ps(process)
ps -ef
UID PID PPID C STIME TTY TIME CMD
root 2 0 0 15:28 ? 00:00:00 [kthreadd]
UID 谁运行的
PID 进程号(系统识别是你是哪个进程)
PPID 父进程
C cpu使用情况
STIME 什么时候开始运行的 0:0:0代表在当没有运行起来
TTY 由哪个终端操作的,终端(操作系统的页面)
?代表不是用户终端启动的,系统内核启动的
TIME 当前运行了多久
CMD 用哪个命令启动起来的,挖矿的时候分析是哪个脚本启动的
查看进程详细信息
ps -aux
USER 运行用户
PID 父进程
%CPU 使用cpu使用率
%MEM 内存使用率
VSZ 虚拟内存使用率,虚拟内存:使用部分磁盘空间当作内存
RSS 物理内存的使用
TTY 哪个终端开启的
?代表不是用户终端启动的,系统内核启动的
STAT 进程状态
START 启动时间
TIME 运行了多久
COMMAND 启动命令
进程状态
- 描述进程工作状态的标识
S(sleep):可中断的睡眠进程
D:不可中断的睡眠进程
R(running):正在运行的进程
T:后台暂停的进程(ctrl+z将进程放到后台暂停)
Z(zombie):僵尸进程
s:该进程是一个父进程
+:该进程是一个前台运行进程
<:该进程是一个高优先级进程
N:该进程是一个低优先级进程
进程优先级
介绍
OOM机制:out of memary 内存不足,自动杀掉内存使用率高的进程
作用
进程在系统的重要程度,越重要被杀的概率越低,先杀优先级低的进程
优先级程度
范围:-20 ~ 19
数值越高优先级越低
调整进程优先级
启动时调整
nice -n -20 命令 -20是优先级级别
已启动进程的调整
renice -n 20(级别) pid号
服务假死状态
omm机制杀进程时产生的问题,杀掉占用率高的进程后,该进程的父进程又会生成占用率高的子进程
解决方案
- 尽快调高ssh服务优先级
- 查看内存,cpu使用率
进程的生命周期
进程的种类
- 初始进程:派生和回收父进程
- 初始进程,派生出父进程,派生出子进程
- 父进程:派生和回收子进程
- 子进程:每个服务的工作进程
- 僵尸进程:父进程无法回收子进程
- 关闭程序,父进程关闭所有子进程,如果父进程没有关闭某个子进程,该子进程被称为僵尸进程
- 孤儿进程:父进程意外回收,会被初始进程回收
- 子进程的父进程突然消失该进程被成为孤儿进程,孤儿进程会被初始进程回收
- 僵尸进程:父进程无法回收子进程
解决僵尸进程
杀掉僵尸进程的父进程,改进程自动变成孤儿进程,由初始进程回收
回收进程
回收单个进程
kill 进程号 回收进程
kill -l #查看信号,指挥内核如何调度硬件(就是如何回收进程的)
-1 等同于reload
-15 默认
-9 强制杀死
批量回收进程
pkill
pkill 启动进程的命令 #包含进程名的都会被杀
killall
killall -9 执行进程从命令 #批量强制杀死
安装killall
yum install psmisc-22.20-17.el7.x86_64 -y
进程前后台切换
前台进程放到后台
命令 & #将前台进程放到后台运行,但输出结果会前台输出
nohup 命令 #将前台进程放到后台运行,后台进程的输出结果追加到指定文件中nohup
tail -f aa.txt >>1.txt &
tail -f aa.txt:持续跟踪并输出文件`aa.txt`的内容,当文件内容有更新时,会实时显示。
>>1.txt:将输出的内容追加到文件`1.txt`中。
&:表示在后台运行该命令,不会阻塞当前终端(不会在前台显示输出结果)
jobs 当前终端后台运行的进程
后台放到前台
fg 将后台运行的作业切换到前台继续执行
fg 3 指定后台放到前台(号码从jobs看)
bg 将后台暂停的命令,放到前台继续执行