Linux进程管理初学习

本文介绍了Linux进程管理的基础知识,包括进程的概念、状态、监控、调整优先级、进程管理命令如ps、top、kill、nice、renice等,以及系统服务管理和常用命令如systemctl。

进程管理的基本内容
进程:
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时间要求的迫切程度

  1. 取值范围为-20~19
  2. 进程的谦让度为负数时,反映进程对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

    1. 查看系统服务启动状态,systemctl list-unit-files --type service #列出所有服务,并检查是否开机启动
      【例】搜索指定的服务(crond)在系统中是否开机启动
      systemctl list-unit-files --type service|grep crond
    1. 列出所有处于激活状态的服务,systemctl list-units --type service --all
      其中UNIT 是服务名,LOAD是服务是否已经被加载,ACTIVE是服务活动状态,SUB是服务进程状态,DESCRIPTION 是服务的描述
    1. 服务状态控制,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服务
    1. 服务开机自动启动控制,systemctl [enable/disable] name.service
      【实例】设置crond.service服务为开机自动启动
      systemctl enable crond.service
      搜索crond服务在系统中是否开机自动启动
      systemctl list-unit-files --type service|grep crond
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值