进程优先级是0-139共140个优先级,数字越小优先级越高,高优先级能获取更多的CPU资源优先执行这个任务。0-99:系统分配优先级,用户不可操控,100-139:nice值,用户可操控的调整只能用-20~19,root用户可随意调整-20~19之间的值。

ps(process status)

查看运行命令那一刻的进程状态。
语法:ps [options]

a  #显示和终端有关的进程,在某个终端中输入的命令。
u  #显示和进程用户的信息
x  #显示和终端无关的进程,内核等进程
-e  #显示所有进程信息
-l  #显示进程长格式
-F  #显示进程完整信息

不加选项显示与终端有关的进程,ps命令有两种风格的使用方法,第一种是BSD:ps -aux,第二种是systemV:ps -elF

ps -aux 内容解释

  • USER #此由那个用户运行的
  • PID #进程ID号,存放在/proc下,CentOS7中进程ID为1的是systemd,6中ID为1的进程是init,id为1的进程是所有进程的父进程。
  • %CPU #占用CPU百分比
  • %MEM #占用内存(Memory)百分比
  • VSZ #虚拟内存集(计算进程占据物理内存,其中共享库被计算在内)
  • RSS #常驻内存集(进程不能被交换出去的数据)
  • TTY #运行在那个终端上
  • STAT #进程状态

    • D 不可终端睡眠
    • S 可中断睡眠状态
    • R 运行状态
    • T 停止状态
    • Z 僵尸状态
    • s session leader(会话领导者)
    • < 优先级较高的进程(用户不可控)
    • N 优先级较低的进程(用户可控进程)
    • l 多线程进程
    • L 在内存中锁定分页
      • 前台进程组中的进程
  • START #进程启动时间
  • TIME #该进程在CPU实际运行时长
  • COMMAND #进程命令name

ps -elF内容解释

PRI  #系统分配的优先级,用户不可更改
NI  #nicevi值

如果要调整正在运行中进程的nice值

renice [nice_num] PID

以指定的优先级运行命令

nice -n nice_num COMMAND

top

每3秒显示进程动态信息

top - 15:53:58 up 57 min,  3 users,  load average: 0.00, 0.01, 0.04
Tasks:  95 total,   1 running,  94 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   500152 total,   175252 free,   101132 used,   223768 buff/cache
KiB Swap:  1048572 total,  1048572 free,        0 used.   358424 avail Mem 

第一行:当前系统时间,系统运行时长,登录系统用户个数,过去1分,5分,15分平均负载(只查看负载可以用uptime)。
第二行:进程总数 正在运行进程数 睡眠进程数 停止状态进程数 僵尸进程数
第三行:CPU相关信息:us(用户进程所占CPU百分比) sy(系统进程占CPU百分比) ni(nice占CPU百分比) id(空闲进程占CPU百分比) hi(硬件中断占CPU百分比) si(软件中断占CPU百分比) st(被hypervisor偷走的占CPU百分比)
第四行:物理内存信息
第五行:交换分区内存信息

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
  • PR 优先级
  • NI nice值
  • VIRT 虚拟内存
  • RES 常驻内存
  • SHR 共享内存
  • S 状态
  • %CPU CPU占用率
  • %MEM 内存占用率
  • TIME+ CPU运行进程的时间

top交互式命令:

1 可查看每个CPU信息
M 按内存百分比排序
P 按CPU百分比排序
T 按进程运行时长排序
c 是否显示COMMAND完整路径
l 是否显示第一行
t 是否显示第二行和第三行
m 是否显示内存相关信息
k 杀死某个进程(输入PID)
q 退出top命令

pstree

查看进程树父子关系

pgrep

查看进程PID号

pgrep process_name
pidof process_name

杀死进程

杀死某个进程,向进程传递某个信号,信号是进程之间的通信(IPC),也可以跨系统通信。

kill -l 查看信号列表

1 SIGHUP #不停止服务情况下,重新读取配置文件并应用。
2 SIGINT #Ctrl+c中断某个进程
9 SIGKILL #强制杀死某个进程
15 SIGTERM #终止某个进程(默认使用的信号)

Usage: kill -SIG_NUM PID

 `kill -SIG_NAME PID`

也可杀死整个进程树,杀死父进程子进程也会被杀死。
Usage: killall -SIG_NAME PID

按照名称杀死进程。
Usage:

前台进程:李四用终端执行的进程,就是当你运行一个命令不能再执行其他命令这就是前台进程。
foreground-process.png

后台进程:执行命令不利用终端执行的进程

& 启动时直接调入后台运行 例子:`cp sxx.txt /root/ &`
Ctrl+z 把进程调入后台停止运行,可以用`bg`把所有进程调入后台继续运行。
jobs 查看进程作业序号,[1]是作业号,+下一次要执行的作业1,-下一次要执行的作业2。
kill %Jobnumber 杀死指定后台作业,例子:`kill %1`。
fg 把后台进程调入前台运行,例子:`fg Jobnumber`

lsof

lsof用来查看进程是由那些文件中打开
Usage:lsof [u][+d]
Options:

-u #来指定查看那个用户
+d #指定查看某个目录下已经被打开的文件。  

常用于查看端口被那些程序占用lsof -i:端口号

标签: none

讨论讨论讨论!