1.进程
进程的定义
程序是静态的代码文件;进程是指程序运行时的形态
进程是程序的一个副本(copy程序到内存,相当于副本)
进程是有生命周期的
准备期:准备资源(类似于执行“打扫教室任务”前,“拿扫把”)
运行期:执行过程
终止期:执行后程序所占用的系统资源被回收
进程和线程
进程:进程是资源调用的最小单位。所有事件由cpu处理,当一个事件cpu,其他事件就无法占用处于,等待用完才可以使用cpu。
双核、三核cpu:为使充分使用cpu,一个事件细划分成若干个小的线程,加速cpu同时处理。
线程是进程的最小单位
程序执行流是从上到下贯穿运行的
当进程是多任务,cpu是多核心时,多任务应该同时被每个核心处理,每个核心处理的任务叫线程资源。 线程资源是共享的
进程状态
R(TASK_RUNNING) ##可执行态:正在被cpu处理,或已经加载好等待被cpu处理
S(TASK_INTRRUPTABLE) ##可唤醒休眠:使用cpu超时,进入休眠,再次使用时需要被激活
D(TASK_UNINTRRUPTABLE) ##不可唤醒休眠:使用cpu超时,仍有资源没有被加载好,不可以使用cpu
T(TASK_STOP) ##暂停状态:关闭无法使用程序,但可以人为唤醒
Z(EXIT_ZOMBLE) ##僵死态:进程已经结束,却占用资源不放,需要手动结束程序。“bug”
2.进程查看命令(man ps)
gnome-system monitor gnome:图形界面
#ps 命令的三种执行风格 unix bsd GNU
bsd风格
ps a #与终端相关的,带字符终端的进程(当用户登陆系统后产生的进程都是带终端)
ps x #与终端无关的,不带字符终端的进程(除了某些有依赖关系的,其余都是?)
ps u #用户信息归类的查看方式
ps f #进程层级关系
ps o #显示指定参数,如pid comm nice pri pcpu ppid stat,user,group
unix风格
ps -e 显示所有进程
ps -f 显示信息的完整格式
ps -H 显示进程的层级结构
ps -o 显示指定参数
ps --sort= (如cpu排序、内存排序) - sort=为倒序
1.如:ps axo pid,%cpu,%mem,state
2.排序
从小到大:
从大到小:
pgrep
pgrep #进程过滤
pgrep -u ##uid 显示指定用户进程
pgrep -U ##user 显示指定用户进程
pgrep -t ##tty 显示指定终端进程
pgrep -l ##显示进程名称
pgrep -a ##显示进程的完整名称
pgrep -P ##显示进程的子进程
具体操作过程:
1.开启3个shell,其中两个用westos用户登陆,另一个用root,westos窗口用ps命令查询pid
.进程优先级
系统是多任务多用户的操作模式
任务的重要性是有区分的
如何确定任务的重要性——“优先级” 范围:0–139 (共140个优先级)
内核自控优先级范围:0–99
用户可控优先级:100–139
nice -20 ~ 19 其中-20最高,19最低
##linux系统中nice值——优先级的另一种说法:系统可控优先级的值
##普通用户优先级只能调低不能调高
更改优先级:renice -n -5(期望优先级) 11111(pid)
##更改优先级
进程状态:
S #sleeping
< #优先级高
s #顶级进程
T #stop
N #优先级低
R #running ‘+’ #运行在前台
(1)例如:查看优先级并根据状态修改优先级
(2)指定进程优先级为5 打开进程以及强制关闭(&表示在后台运行)
4.进程前后台调用
##查看进程状态 stat
Ctrl +Z ##把占用shell的进程打入后台挂起
bg ##把后台挂起的进程运行起来
fg ##把后台进程调回前台
& ##运行进程在后台
jobs ##查看当前shell中在后台的所有工作
5.进程信息号
进程信号
man 7 signal
1 ##重新读取加载系统配置文件(source)
2 ##清空内存中的进程数据
3 ##清空内存中的鼠标(Ctrl +\)
9 ##强制结束进程(不能被阻塞)
15 ##正常关闭进程(会被阻塞),无法强制关闭子程序,关闭shell会被阻塞
18 ##被暂停的进程运行起来
19 ##暂停进程(不会被阻塞)
20 ##暂停进程(会被阻塞的)
6.进程信号控制工具
kill 进程信号 pid
killall 进程信号 进程名字
pkill 进程信号 进程条件
killall ##结束某一进程或命令
pkill ##指定结束某一用户及所有进程
如:
关闭用户westos的所有进程 pkill -U westos
关闭所有的vim进程 killall -9 vim
6.systemd守护进程
配置ip地址 nm-connection-editor
选择ens3 ipv4处选择mannual 子网掩码24 ip老规矩
真机:ssh -l root 172.25.254.112
systemctl命令
systemctl命令的用法
start ##开启
stop ##关闭
status ##查看状态
reload ##重新加载
restart ##重新启动服务
注:reload和restart一样的效果,因为ssd服务不支持reload,支持的话reload后id不变
enable ##设定服务开机启动
enable --now ##设定服务开机启动并当前开启服务(enable开机时启动 now现在)
disable ##设定服务开启不启动
list-units ##查看系统所有服务当前状态
list-unit-files ##查看服务开机状态
list-dependencies ##列出服务依赖性
mask ##冻结服务
umask ##解锁
set-default ##设定系统运行模式
##multi-user.target 无图形网络模式
##graphical.target 有图形的网络模式
get-default ##查看系统运行模式:直接runlevel
##系统运行模式
#0-6
#0 POWEROFF 关闭
#1 single 单人模式
#2 noG+NETWORK 无图形模式
#3
#4
#5 G+NETWORK 图形模式
#6 REBOOT 重启
7.系统中的登陆审计
w ##显示正在登陆系统的账号
## -i 显示登陆来源
实际的文件位置 #/var/run/utmp
last ##登陆成功现在已经退出
##/var/log/wtmp
lastb ##试图登陆但未成功
##/var/log/btmp