进程管理的基本内容
进程:
1.程序的一次执行过程
2. 资源分配和管理的基本单位
进程管理的内容
- 监控进程:获取当前系统中各个进程的具体状态信息
- 调整进程的运行优先级
- 守护进程
PID 进程号
PRID 父进程的PID 号
USER/UID 执行该进程的用户名及其UID
TTY 启动该进程的终端
PRI 进程的优先级,数字越大越优先
NICE 进程的谦让度,表示进程对CPU时间要求的迫切程度(负数的优先级高)
%CPU 进程占用的CPU 比例
%MEM 进程占用的内存比例
TIME 进程实际占用的CPU 总时间
STIME:进程开始执行的时间
ADDR 进程在内存中的地址
RSS 进程占用的内存大小
VSZ:进程占用的虚拟内存空间
CMD 启动进程的命令
STAT :进程的状态
- S 睡眠状态
- W 进程没有驻留页(等待)
- R 运行或者准备运行状态
- I 空闲
- Z 僵尸状态
- D 不间断睡眠(挂起)
- T 停止或者追踪
- N 低优先级的任务
ps命令
【功能】报告进程的相关信息
【格式】ps [选项]
ps -aux
ps -el
- -a 显示所有用户的进程
- -x 显示没有控制终端的进程
- -u 显示用户名和启动时间等信息
- -e 显示所有进程的信息
- -l 以长格式显示进程信息(包括系统进程)
top命令
【功能】以实时的方式报告进程的相关信息
【格式】top [选项]
选项
- -d 10 设定刷新进程的时间间隔
在top环境中,可以进行的操作:
1.
I反向排序,再次按就切回来
P cpu使用时间多少进行排序
M 内存使用量
T 进程执行时间多少
2.
K 可以删除进程,输入PID 号即可删除
3.
U 监视指定用户, 这时输出小写的 user,即可列出所有user的用户信息
4.
H 查阅帮助, 输入q或者esc可以退出
pstree命令
监视进程
【命令】显示进程的家族树的信息
【格式】pstree [选项] [进程的PID/用户名]
选项
- -p 显示每个进程的PID 号
- -u 用户名 指定只显示属于该用户的进程
lsof命令
进程监视命令
【功能】列出有某进程所打开的文件
【格式】lsof [选项] [文件或目录路径]
- -p PID 列出该进程所打开的文件
- -u 用户名 列出某用户打开的所有文件
kill命令
控制进程
【功能】向特定进程发送某种信号
【格式】kill [选项] [-信号名称/编号] [PID列表]
【例】kill -9 5258
选项
- -l 列出系统中定义的信号
Linux中常用的部分信号
编号
- 2 SITINT 程序终止信号,用于通知前台终止进程,快捷键ctrl+c
- 3 SIGQUIT强行终止某进程,进程终止后会生成文件core,快捷键ctrl+\
- 9 SIGKILL强行终止某进程,该进程不能被封锁
- 18 SIGCONT 恢复执行被SIGSTOP 和SIGTSTP信号暂停的进程
- 19 SIGSTOP 通知操作系统停止进程的运行,该信号不可忽略
- 20 SIGTSTP 暂停进程,但该信号可以被处理和忽略
进程的优先级(PRI)
进程的优先级是操作系统在进程调度时用于判决进程是否能够获得cpu的依据之一
- 进程的优先级越高,则越能在竞争中胜出而获得CPU时间
- 以一个整数来表达的,数值越低,优先级越高
- 每个普通进程的优先级默认为80
用户时无法直接调整PRI值的,要通过进程谦让度来调整
进程的谦让度(NICE)
表示进程对CPU时间要求的迫切程度
- 取值范围为-20~19
- 进程的谦让度为负数时,反映进程对CPU资源的要求较为迫切
一般来说:优先级(PRI)与谦让度(NICE)存在如下关系:
PRI (new) = PRI (old) +NICE
root用户可以调整自己和其他用户的nice值,范围为-20~19
普通用户只能调整自己进程的nice值,为了避免普通用户抢占系统资源,nice的调整范围为0~19,而且只能往高调整
nice命令
【功能】设定要启动进程的谦让度
【格式】nice [选项] 命令
主要选项
-n (nice)数值:设定谦让度,数值为-20~19
【实例】以root身份登录,给vi进程设定谦让度为-3
nice -n -3 vi& //&表示后台运行
ps -ls
renice命令
【功能】调整已存在进程的nice值
【格式】renice -n 谦让度 进程pid号
【实例】将上一个例子中的vi进程谦让度调整为3
renice -n 3
ps -l
进程的类型:
- 系统进程:操作系统启动后,系统平台运行所加载的进程
- 用户进程:与终端相关联,是由用户所执行的服务
- 守护进程:在后台运行的进程,优势也称为服务,没有屏幕提示,只是在后台等待用户或者系统的请求
部分系统服务及其守护进程
- atd 提供执行临时性作业的服务
- crond 提供执行周期性作业的服务
- sshd 提供安全的远程连接服务
- httpd 提供网页内容服务
系统服务管理的常用命令
runlevel运行级别
【功能】用于显示系统当前和上一次的运行级别,如系统不存在上一次的运行级别,用N来代替
【格式】runlevel
init命令
【功能】转换服务的运行级别
【格式】init[n];其中格式中的m为0~6级别,转换级别后系统立刻生效
【例】
init 3 #切换到第3运行级
runlevel
init 0 #关机
init 6 #重新启动
init 5 #进入图形界面
systemctl命令
查看系统的服务启动状态,centos7中runlevels被targets取代
systemctl get-default 获得默认启动的target
systemctl set-default 设置系统默认启动的target
-
- 查看系统服务启动状态,systemctl list-unit-files --type service #列出所有服务,并检查是否开机启动
【例】搜索指定的服务(crond)在系统中是否开机启动
systemctl list-unit-files --type service|grep crond
- 查看系统服务启动状态,systemctl list-unit-files --type service #列出所有服务,并检查是否开机启动
-
- 列出所有处于激活状态的服务,systemctl list-units --type service --all
其中UNIT 是服务名,LOAD是服务是否已经被加载,ACTIVE是服务活动状态,SUB是服务进程状态,DESCRIPTION 是服务的描述
- 列出所有处于激活状态的服务,systemctl list-units --type service --all
-
- 服务状态控制,systemctl [status/start/stop/restart/reload] name.service
【实例】
systemctrl status crond.service //查看crond.service服务状态
systemctrl stop crond.sevice //关闭crond.service服务
systemstrl start crond.service //开启crond.service服务
- 服务状态控制,systemctl [status/start/stop/restart/reload] name.service
-
- 服务开机自动启动控制,systemctl [enable/disable] name.service
【实例】设置crond.service服务为开机自动启动
systemctl enable crond.service
搜索crond服务在系统中是否开机自动启动
systemctl list-unit-files --type service|grep crond
- 服务开机自动启动控制,systemctl [enable/disable] name.service
本文介绍了Linux进程管理的基础知识,包括进程的概念、状态、监控、调整优先级、进程管理命令如ps、top、kill、nice、renice等,以及系统服务管理和常用命令如systemctl。
587

被折叠的 条评论
为什么被折叠?



