一,进程的定义
进程是程序运行时的形态,程序是静态的代码文件,进程是调用资源最小单位,线程是进程最小单位,进程是有生命周期的。
程序执行流是从上倒下贯穿运行的,当进程是多任务物,cpu是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程 ,线程资源是共享的
进程的转态:
R --- Running 可执行(正在运行或者准备)
S --- Intrruptable 可唤醒状态
D --- Unintrruptable 不可唤醒状态
T --- Stop 暂停状态
Z --- Zombie 僵死状态
二,进程有关命令
ps a 与终端相关的进程
ps x 与终端无关的进程
ps ax 所有进程
ps aux 用用户信息分类
ps axo 显示进程指定参数
ps axf 显示进程存储关系
ps -e 显示所有进程(简要名称)
ps -f 显示所有信息的完整格式
ps -H 显示进程的层级结构
ps -o 显示指定参数
ps -eH 进程的存储关系
ps -ef 进程的完整名称
ps -eo 进程的相关信息
ps axo %cpu --sort=+%cpu 按CPU使用情况的排序的正序
ps axo %cpu --sort=-%cpu 按CPU使用情况的排序的倒序
ps axo %cpu --sort=-%mem 按内存的使用情况排序倒序
ps axo %cpu --sort=+%mem 按内存的使用情况排序正序
pgrep -u 1000 ID为1000的用户的进程
pgrep -lu 1000 查看进程的时候查看进程的id
pgrep -lU westos 查看进程的名字
pgrep -alU westos 查看进程的完整名称
pgrep -P 55333 查看55333的子进程
pidof vim 查看vim的id
top -d 1 刷新频率一秒一次
top -b 批次显示进程的相关信息 ctrl+c关闭
top 直接进入 q退出
top -b -n 2 抓取2次进程信息(显示的批次数)
进入top内部后输入
P 按CPU排序
M 按内存排序
T 累计占用CPU时间l
t 关闭和开启TASK一栏
s 按s输入数字指定刷新频率
k 对进程进行操作
u 查看指定用户进程
l 关闭开启uptime信息
top的显示内容
09:48:51 系统时间
up 18:54 运行时长
2 users 系统中有两个用户登陆
load average: 0.75, 0.53, 0.41 1min 5min 15min
Tasks:
331 total 任务总量
3 running 正在运行
329 sleeping 休眠人物数量
0 stopped 被暂停数量
0 zombie 僵死人物数量
%Cpu(s)
1.5 us 用户空间
1.9 sy 内核空间
0.0 ni nice值调整时间
58.9 id 空闲时间
0.0 wa 等待写入时间
2.1 hi 处理硬件中断时间
0.2 si 处理软件中断时间
0.0 st 被偷走的时间
MiB Mem :
7664.6 total, 总量
5383.9 free 空闲
1312.1 used 占用
968.8 buff/cache 缓存 buff从内存往硬盘里写 cache从硬盘往内存里写
MiB Swap: 交换分区用量
PID 进程id
USER 进程所有者的用户名
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级,数值越低优先级越高
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进
程)
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 命令名/命令行
三,进程优先级
优先级范围0-139,0优先级最高,数字越小越高
rt 内核自控优先级范围
用户可控优先级100-139,优先级数字越低,优先级越高
nice -20-19 对应的是100-139
vim & 执行vim 并后台运行
ps ax -o nice,comm | grep vim 查看vim优先级
ps ax -o nice,pid,comm | grep vim 查看优先级的同时查看id
renice -n -5 3622 把vim的优先级从0变为-5
killall -9 vim 强制结束vim进程
nice -n -5 vim & 进程在开启时设定优先级
S 休眠状态
< 优先级高
s 顶级进程
T 停止
N 优先级低
R 正在运行
+ 运行在前台
四,进程前后台调用
ctrl + z可以把进程打入后台
jobs 查看进入后台的进程
bg 1 重新运行进程
fg 1 调为前台
vim & 在后台运行进程
五,进程信息号
[root@westos_student50 Desktop]# kill -2 3885 清除内存数据
[root@westos_student50 Desktop]# kill -15 3885 结束进程(关闭shell)
[root@westos_student50 Desktop]# kill -9 3885 强制关闭
[root@westos_student50 Desktop]# kill -18 3885 激活暂停运行的进程
[root@westos_student50 Desktop]# kill -19 3885 强制暂停进程
[root@westos_student50 Desktop]# kill -20 3885 暂停进程可能会被拒绝
[root@westos_student50 Desktop]# killall -9 vim 结束所有名字是vim的进程
[root@westos_student50 Desktop]# pkill -9 -u westos 结束westos进程
六,systemd守护进程
ssh -l 192.168.0.50 远程控制50这台主机
ps aux | grep ssh 50这台主机开了什么软件支持远程控制,删除这个进程后60 主机无法登陆
systemd(守护进程)提供systemctl
systemctl status sshd 查看systemctl的状态
systemctl stop sshd 关闭这个远程控制功能
systemctl start sshd 启动这个远程控制功能
systemctl disable sshd.service 开机时不开启远程控制功能(不影响当前状态)
systemctl disable --now sshd 当前关闭远程控制,且开机时不开启
systemctl enable sshd 再开机的时候开启远程控制功能
systemctl enable --now sshd 当前开启远程控制,且开机时开启
systemctl list-units 当前所有开启的服务
systemctl list-unit-files 查看这些服务开机时的状态
systemctl list-dependencies 查看所有服务依赖性
systemctl list-dependencies sshd 查看指定服务依赖性
systemctl mask sshd 冻结这个功能
systemctl unmask sshd.service 解冻这个功能
runlevel 查看开机时的级别
0表示关机,6表示重启,1表示单用户,2-4表示无图形网络模式,5有图形网络模式
systemct set-default multi-user.target 开机时无图形
systemct get-default graphical.target 设定系统运行模式
七,系统中的登录审计
ifconfig 查看网络ip
w 查看谁正在使用系统
w -i 表示登陆来源
w -h 查看谁正在使用系统不显示负载
w -hs 简要查看
w -f 显示远程主机名称
last 查看使用过当前主机的人
lastb 试图登陆但未成功