进程线程协程

查看进程

ps

常用组合:aux,e,f,F,H,axo

  • u:以用户为中心组织进程状态信息显示
  • a:与终端相关的进程;
  • x:与终端无关的进程;
  • e: 显示所有进程
  • f:显示完整格式程序信息
  • F:显示完成格式的进程信息
  • H:以进程层级格式显示进程相关信息
  • axo:自定义显示字段,后面跟上想要的消息,用逗号分隔

ps aux与ps -aux不同,"ps -aux"打印用户名为"x"的用户的所有进程,以及打印所有将由-a选项选择的过程。如果用户名为"x"不存在,ps的将会解释为"ps aux",而且会打印一个警告。

[root@server1 ~]# ps aux
USER     PID  %CPU     %MEM    VSZ     RSS          TTY     STAT  START   TIME COMMAND
用户    进程ID CPU占用 内存占用 虚拟内存集 常驻内存集 终端/? 进程状态 启动事件 累计占用CPU事件 由哪个命令执行
root        1  0.2     0.6   128020    6520         ?        Ss   08:45   0:02 /usr/lib/syste
root        2  0.0     0.0        0       0         ?        S    08:45   0:00 [kthreadd]
root        3  0.0     0.0        0       0         ?        S    08:45   0:00 [ksoftirqd/0]
root        4  0.0     0.0        0       0         ?        S    08:45   0:00 [kworker/0:0]
root        5  0.0     0.0        0       0         ?        S<   08:45   0:00 [kworker/0:0H]
root        7  0.0     0.0        0       0         ?        S    08:45   0:00 [migration/0]
root        8  0.0     0.0        0       0         ?        S    08:45   0:00 [rcu_bh]
root        9  0.0     0.0        0       0         ?        S    08:45   0:00 [rcu_sched]

进程状态STAT

每个CPU核心同时只能处理一个进程,在进程运行时,随着资源分配情况不同,他也会处于不同的状态

R运行状态:进程要么在运行要么在运行队列

S睡眠状态/可中断睡眠:进程在等待事件的完成

D磁盘睡眠状态/不可中断睡眠:等待IO结束

T停止状态:可通过发送SIGSTOP信号给进程来停止进程,等接收到SIGCNT信号继续运行

Z僵尸状态:通知父进程回收资源

僵尸进程:当一个子进程退出后,如果父进程没有利用wait或者waitpid来获取子进程的状态信息,那么子进程的状态描述符依旧保存在系统中

孤儿进程:如果父进程突然被中止,子进程就成为孤儿进程,将被初始进程接管

+:前台进程
l:多线程进程
N:低优先级进程
<:高优先级进程
s:session leader,即其有子进程

X死亡状态:这是一个返回状态,不会出现在任务列表

进程状态转换

avatar
linux系统进程状态

top

动态系统资源管理器

  • d n:n秒刷新一次
  • p n:指定PID
  • i:不显示闲置和僵尸进程
  • c:显示整个命令行
  • s:安全模式

运行过程中的指令

  • s – 改变画面更新频率
  • l – 关闭或开启第一部分第一行 top 信息的表示
  • t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
  • m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
  • N – 以 PID 的大小的顺序排列表示进程列表
  • P – 以 CPU 占用率大小的顺序排列进程列表
  • M – 以内存占用率大小的顺序排列进程列表
  • h – 显示帮助
  • n – 设置在进程列表所显示进程的数量
  • q – 退出 top
  • s – 改变画面更新周期
  • 1 - 查看各个cpu占用情况
  • f - 定制化条目,按d或者选择条目,s为选择默认排列顺序

avatar

top - 18:43:43 up  2:41,  1 user,  load average: 0.00, 0.01, 0.05

任务队列消息,按l取消该行

系统时间,运行事件,当前用户,负载均衡(1分钟,5分钟,15分钟,每隔5s检查一次活跃的进程数,按照特定算法计算出值,除以逻辑CPU的数量,高于5的时候就表明系统在超负荷运转)

Tasks: 108 total,   1 running, 107 sleeping,   0 stopped,   0 zombie

总进程,运行,休眠,停止,僵尸

%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

0.0%us【user space】— 用户空间占用CPU的百分比。

0.0%sy【sysctl】— 内核空间占用CPU的百分比。

0.0%ni【】— 改变过优先级的进程占用CPU的百分比

100%id【idolt】— 空闲CPU百分比

0.0%wa【wait】— IO等待占用CPU的百分比

0.0%hi【Hardware IRQ】— 硬中断占用CPU的百分比

0.0%si【Software Interrupts】— 软中断占用CPU的百分比

KiB Mem :   995924 total,   734508 free,    99996 used,   161420 buff/cache

内存状态

KiB Swap:  2097148 total,  2097148 free,        0 used.   721236 avail Mem

swap交换分区

   PID  USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S —进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

进程控制

kill [] PID

-l:列出所有支持的信号

[root@server1 ~]# kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

常用

编号信号名作用
1SIGHUP重新加载
2SIGINT键盘中断
9SIGKILL强制终止
15SIGTERM正常结束,缺省信号

pkill [] name

pkill能够直接对进程名进行操作

-P:只对父进程号发送信号
-g 指定进程组
-t:指定开启进程的终端
-u:指定用户

[root@xwz ~]# pkill -u centos [root@xwz ~]# pkill -t pts/2 # 终止pts/2上所有进程 [root@xwz ~]# pkill -9 -t pts/2 # 终止pts/2上所有进程,并结束pts/2

进程优先级

cpu同一个事件只能处理一个进程,通过时间片调度使得linux实际能够运行的进程数要超过cpu核心数量,给用户多个进程同时运行的家乡

每个进程的重要成都不一样,SCHED_OTHER调度策略运行的进程的相对优先级称为进程的nice值,从-20到19,nice值越高,优先级越低.子进程通常会继承父进程的nice级别

renice 数值 PID可以调整nice值

top的r也可以调整nice

nice -n 值 systemctl start 服务可以以指定的nice值启动进程

进程优先级可以用0-139表示

0-99:实时优先级,越高越优先
100-139:静态优先级,数字越小越优先

作业控制jobs

前台进程:在终端中运行

后台进程:与终端无关

jobs查看后台进程

fg id把作业id调回前台

kill %id 杀死作业号为id的后台程序

远程主机

screen

-S 'name':开启一个新的终端并指定名称

-r id :连上指定终端

-list:列出所有终端

ctrl+a+d:列出所有终端列表

标签: none

评论已关闭