Linux 进程管理

进程与程序

  1. 用户执行程序时,程序由磁盘加载到内存中成为一个个体,即进程,并根据不同的用户权限生成一个PID,用于系统管理进程。
  2. 子进程与父进程
    fork and exec:系统先fork出一个与父进程相同的暂存进程,该进程与父进程的唯一区别是PID不同,还会多一个PPID父进程号,然后暂存的进程开始以exec的方式加载实际要执行的命令
    常驻进程被称为服务

job control 管理

  1. command &
    将命令放至后台执行,若打印信息较多,可进行数据重定向,以免影响前台工作
  2. Ctrl + Z
    将命令放到后台暂停,重新获取前台操控权,输出提示中的‘+’表示最近一个被怼进后台的工作
  3. jobs:查看后台工作状态
    jobs [参数]
    -l:列出job number、command及PID
    -r:仅列出后台run的工作
    -s:仅列出后台shop的工作
  4. fg:将后台命令拿到前台处理
    fg %jobnumber
  5. bg:让工作在后台run
    bg %jobnumber
  6. kill:管理后台工作
    kill -signal %jobnumber
    kill -l:列出kill可以使用的signal
    signal:
    -1:重新读取参数配置文件,类似于reload
    -2:与Ctrl+C功能相同
    -9:立即强制删除一个工作
    -15:以正常的方式结束一项工作
    kill后的数字默认为PID,加上%才表示jobnumber

脱机管理

  1. 后台模式指的是不会被Ctrl+C 打断,并未真正放入系统后台,job的执行仍与终端机有关,当系统脱机时,工作会被中断
    可以使用at,at中的命令在系统后台中执行,也可以使用
  2. nohup
    nohup [ 命令与参数]:在终端机前台工作
    nohup [ 命令与参数] &:在终端机后台工作
    exit后再登录,nohup后的命令仍在后台

进程查看

  1. ps
    ps aux:查看所有进程
    ps -lA:查看所有系统数据
    ps axjf:连同部分进程树状态
    参数:
    -A:所有进程均显示出来
    -a:与终端无关的进程
    -u:有效用户相关进程
    x:通常与a一起使用,列出完整信息
    输出格式规划:
    l:较长、较详细的将该PID信息列出来
    j:工作格式输出
    -f:更加完整地输出
    在这里插入图片描述
    F为进程标志,说明进程权限,4表示该进程权限为root
    S为进程状态,R(run) S(sleep) T(stop) Z(zomble) D(不可唤醒的睡眠状态)
    C为CPU使用率,单位为百分比
    PRI/NI代表进程优先级,数值越小等级越高
    SZ为进程所占内存
  2. pstree
    查看进程树
  3. top:动态查看
    top [-d 数字] | top [-bnp]
    -d:刷新频率,后接秒数 -b:以批次的方式执行top
    -n:与-b搭配,代表需要进行几次top的结果输出
    -p:指定PID进行监测在这里插入图片描述
  4. killall:不必使用进程PID,直接使用进程名
    killall [-iIe] [进程名称]
    -i:交互式 -I:命令名称忽略大小写 -e:exact

进程管理

  1. nice:给新的命令一个nice值
    nice [-n 数字] command
    -n后接数字范围为 -20 - 19
  2. renice:已存在的进程重新调整
    renice [number] PID

系统资源查看

  1. free:查看内存
    free [-b|-k|-m|-g] [-t]
    -b:指定显示单位,b,m,k,g
    -t:显示物理内存与swap总量
  2. uname:系统与内核相关信息
    uname [-asrmpi]
    -a:所有系统相关信息 -s:内核 -r:内核 -m:硬件 -p:CPU -i:硬件平台
  3. uptime
    与top最上面一行相同
  4. netstat:跟踪网络
    netstat [-atunlp]
    -a:所有连接,包括socket -t:tcp网络数据包数据 -u:udp网络数据包数据
    -n:不列出服务名称,以端口号来表示
    -l:列出正在网络监听的服务
    -p:列出网络服务的进程PID
  5. dmesg:分析内核信息
  6. vmstat:检查系统资源变化,CPU/内存/磁盘
    vmstat [参数] [ 延迟 [ 总计检测次数] ]
    -a: 使用活跃与否来显示内存信息
    -f:系统fork的进程 -s:将内存变化列表说明 -S:后接显示单位
    -d:列出磁盘的读写总量统计表 -p 分区:显示分区的读写总量统计表
    在这里插入图片描述
    每秒刷新一次,共进行三次
    r:等待运行进程数 b:不可唤醒进程数
    除了free其他memory相关参数均为使用量
    swap参数反应内存与磁盘的数据交换操作
    io反应系统I/O繁忙程度
    system选项(in中断次数,cs时间切换次数)反应系统与接口设备的通信
    CPU选项:在这里插入图片描述
    可通过man vmstat查看个字段含义

/proc:内存中的数据文件

在这里插入图片描述
各进程的PID号以目录的形式存在

查询已打开的文件或已执行程序打开的文件

  1. fuse:通过文件找出正在使用该文件的程序
    fuse [-umv] [-k [i] [-signal] ] file/dir
    -u:除了进程的PID,同时列出进程的所有者
    -m:将文件主动上提到文件系统的顶层,对umount不成功很有效
    -v:列出每个文件与程序还有命令的完整相关性
    -k:找出使用改文件的进程PID,并试图将signal给予该PID
    -i:与k配合,再删除PID前,询问用户意愿
    -signal:默认为-9
    在这里插入图片描述
    access:
    c:此进程在当前目录下 e:可被触发为执行状态 f:是一个被打开的文件
    r:代表顶层目 F:文件被打开了,不过在等待回应中 m:可能为分享的动态链接库
  2. lsof:列出被进程打开的文件
    lsof [-aUu] [+d]
    -a:多项数据须同时成立才显示结果
    -U:仅列出Unix like系统的socket文件
    -u username:列出该用户相关进程所打开的文件
    +d dir:找出某个目录下已打开的文件
  3. pidof:找出某个正在执行的进程的pid
    pidof [-sx] program_name
    -s:仅列出一个PID -x:同时列出该program name可能的PPID的那个进程

SELinux

权限主体由用户变为进程,权限目标变为该进程能否使用某文件。即使root用户,权限也会受限,从而加强系统的安全性。

  1. 运行模式
    1)主体:进程
    2)目标:文件系统
    3)策略:
    targeted,网络限制较多,本机限制较少,默认策略
    strict,完整的SELinuxm,限制较严格
    4)安全上下文 在这里插入图片描述
    安全上下文存储在文件的iNode中
    5)运行模式
    在这里插入图片描述
  2. 使用
    使用apt-get install selinux安装,可在/etc/selinux中产生config文件
    在这里插入图片描述
    SELINUX=selinux模式
    enforcing:强制模式,SELinux正在运行,并开始限制domain/type
    permissive:宽容模式,SELinux正在运行,但仅会进行警告
    disabled:关闭
    模式切换:setenforce [0|1] 0:permissive模式 1:enforcing模式
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值