一、进程定义
进程:程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是cpu未完成的工作,或者就是一个正在运行中的程序。
进程状态:
R(Running):该程序正在运行中
S(Sleep):该程序目前正在睡眠状态,但可以被唤醒
D :不可以被唤醒的睡眠状态,通常进程可能在等待 I/O 的情况
T :停止状态(stop),可能是工作控制(背景暂停)或除错状态
Z(Zombie):僵尸状态,程序已经终止但无法被移除至内存外
二、ps命令
ps
a #关于当前环境的所有进程
x| -A #所有进程
f #显示进程从属关系
e #显示进程调用环境工具的详细信息
l #长列表显示进程的详细信息
u #显示进程的用户信息
-a #显示shell前台运行命令的进程,但不保函shell本身
ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat #指定显示进程的某些信息
%cpu #显示进程cpu负载
%mem #显示进程内存负载
user #进程用户
group #进程组
comm #进程名称
nice #进程优先级
pid #进程的id
stat #进程状态
stat中显示的信息
S #进程状态
l #内存中有锁定空间
N #优先级低
< #优先级高
+ #前台运行
s #顶级进程
测试:
ps ax -o %cpu,comm --sort <+|-%cpu > <+|-%mem> #按照进程信息排序
+ #正序
- #倒序
%cpu #cpu负载排序
%mem #内存负载
测试:以cpu负载倒序显示
三、进程优先级
1、进程的优先级范围:-20~19
2、优先级查看
ps ax -o pid,nice,comm
3、指定某个优先级开启进程
nice -n 优先级数字 进程名称
测试:nice -n -5 vim & #开启vim并且指定程序优先级为-5
4、改变进程优先级
renice -n 优先级数字 进程pid
测试:renice -n -6 31979 #改变31979进程的优先级为-6
四、环境中进程的前后台调用
jobs #查看被打入环境后台的进程
ctrl+z #把占用终端的进程打入后台
fg jobsnum #把后台进程调回前台
bg jobsnum #把后台暂停的进程运行
comm & #让命令直接在后台运行
测试:
ctrl+z后不可执行:
bg 后可运行:
五、进程信号
1、常用信号等级
1 #进程重新加载配置
2 #删除进程在内存中的数据
3 #删除鼠标在内存中的数据
9 #强行结束单个进程(不能被阻塞)
15 #正常关闭进程 (可能会被阻塞)
18 #运行暂停的进程
19 #暂停某个进程 (不能被阻塞)
20 #把进程打入后台 (可以被阻塞)
man 7 signal #查看信号详细信息
kill -信号 进程pid #对单个进程操作
killall -信号 进程名字 #对进程进行批量操作
pkill -u student -信号 #对某个用户下的进程进行操作
测试:强行结束32508这个进程
六、用户登陆审记
w #查看使用系统的当前用户有那些
w -f #-f查看使用地点
last #查看用户登陆成功历史
lastb #查看用户登陆未成功历史
七、top命令
top #监控系统负载工具
s #修改进程刷新间隔时间
m #根据内存占有率进行排序
c # 根据 cpu 占有率进行排序
u #后面输入用户名 , 用来查看该用户发起的所有进程
k #后面跟要作用的进程 pid, 和发起的信号 (eg:9,15,20) 用来给某个进程发起一信号
q #退出进程查看界面
h #显示 top 命令的帮助
八、系统初始化程序
1、systemd
系统初始化程序,系统开始的第一个进程,pid为1
2、systemctl 命令
systemctl list-units #列出当前系统服务的状态
systemctl list-unit-files #列出服务的开机状态
systemctl status sshd #查看指定服务的状态
systemctl stop sshd #关闭指定服务
systemctl start sshd #开启指定服务
systemctl restart sshd #重新启动服务
systemctl enable sshd #设定指定服务开机开启(需要重启reboot)
systemctl disable sshd #设定指定服务开机关闭(需要重启reboot)
systemctl reload sshd #使指定服务重新加载配置
systemctl list-dependencies sshd #查看指定服务的依赖关系
systemctl mask sshd #冻结指定服务
systemctl unmask sshd #启用服务
systemctl set-default multi-user.target #开机不开启图形(重启时非图形界面)
重启时有如下界面:
systemctl set-default graphical.target #开机启动图形
setterm #文本界面设定color
vga=ask #改分辨率
3、服务状态
systemctl status 服务名称
loaded #系统服务已经初始化完成,加载过配置
active(running) #正有一个或多个程序正在系统中执行
atcive(exited) #仅执行一次就正常结束的服务
atcive(waiting) #正在执行当中,不过还在等待其他的事件才能继续处理
inactive #服务关闭
enbaled #服务开机启动
disabled #服务开机不自启
static #服务开机启动项不可被管理
failed #系统配置错误