2022-11-11小白笔记0

目录

进程
进程分类
交互进程
批处理进程
守护进程
查看进程ps
常用选项:
常见写法:
ps -ef
ps aux
关于ps的实际运用
获取CPU占比最高的5个进程
获取内存占比最高的5个进程(降序)
获取内存占比最低的5个进程(升序)
实时查看进程top
相关属性
常用选项
关于top的实际运用
显示momen的用户进程
按内存占用百分比排序
查看各进程的继承关系 pstree
启动进程
手动启动
前台启动
后台启动
调度启动
进程的挂载与恢复
恢复进程执行有两种选择:
后台任务的特点
kill 结束进程
结束进程的运行
中断前台进程:ctrl+c
中断后台进程:使用kill命令结束后台进程(kill -n ,n只信号编号)
linux进程优先级

进程

每一个进程都有一个唯一的进程标识符PID
初始化进程,PID=1,也叫根进程

进程分类

交互进程

在Shell下通过执行程序所产生的进程,这个进程为当前shell的子进程。

批处理进程

一个进程序列

守护进程

服务,监控进程,后台运行,如sshd


查看进程ps

常用选项:

a:显示系统中所有用户的进程。
x:表示显示没有控制终端的进程及后台进程。
r:只显示正在运行的进程。
u:表示显示进程所有者的信息。
-e:表示显示所有进程。
-f:按全格式显示(列出进程间父子关系)。
-l:按长格式显示。

常见写法:

ps -ef
bash
root@momen-PC:~# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 18:02 ?        00:00:00 /init
root         7     1  0 18:02 ?        00:00:00 /init
root         8     7  0 18:02 ?        00:00:00 /init
root         9     8  0 18:02 pts/0    00:00:00 -bash
root       119     9  0 18:02 pts/0    00:00:00 apt update
_apt       122   119  1 18:02 pts/0    00:00:00 /usr/lib/apt/methods/https
bash
输出列含义:
UID    //用户ID,显示为用户名 
PID    //进程PID 
PPID   //父进程PID 
C      //进程占用CPU的百分比 
STIME  //进程启动到现在的时间 
TTY    //该进程在那个终端上运行,若与终端无关,则显示?; 若为pts/0等,表示由网络连接主机进程 
CMD    //命令的名称和参数
USER  //启动某个进程的用户ID和改用户所属组的ID
STAT  //进程状态 运行,等待,停止等
PRIORITY  //进程优先级

ps aux

bash
root@momen-PC:~# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   1804  1180 ?        Sl   18:02   0:00 /init
root         7  0.0  0.0   1816    80 ?        Ss   18:02   0:00 /init
root         8  0.0  0.0   1816    92 ?        S    18:02   0:00 /init
root         9  0.0  0.0  10128  5056 pts/0    Ss+  18:02   0:00 -bash
root       351  0.0  0.0   1816    80 ?        Ss   18:02   0:00 /init
root       352  0.0  0.0   1816    92 ?        R    18:02   0:00 /init
root       353  0.0  0.0  10128  5128 pts/1    Ss   18:02   0:00 -bash
root     16386  0.0  0.0  10620  3388 pts/1    R+   18:17   0:00 ps aux
输出列含义
USER    //用户名 
%CPU    //进程占用的CPU百分比 
%MEM    //进程占用的内存百分比 
VSZ     //该进程使用的虚拟內存量(KB) 
RSS     //该进程占用的实际內存量(KB) 
STAT    //进程的状态 (P108)
START   //该进程被触发启动时间 
TIME    //该进程实际使用CPU运行的时间

关于ps的实际运用

--sort -[列]降序排序
--sort +[列]升序排序

获取CPU占比最高的5个进程
bash
root@momen-PC:~# ps aux --sort -%cpu | head -6
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   1804  1180 ?        Sl   20:30   0:00 /init
root         7  0.0  0.0   1816    80 ?        Ss   20:30   0:00 /init
root         8  0.0  0.0   1816    92 ?        S    20:30   0:00 /init
root         9  0.0  0.0  10072  5128 pts/0    Ss   20:30   0:00 -bash
root        61  0.0  0.0   1816    80 ?        Ss   20:39   0:00 /init
获取内存占比最高的5个进程(降序)
bash
root@momen-PC:~# ps aux --sort -rss | head -6
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         9  0.0  0.0  10072  5128 pts/0    Ss   20:30   0:00 -bash
root        63  0.0  0.0  10072  5088 pts/1    Ss   20:39   0:00 -bash
root        78  0.0  0.0  10876  3648 pts/1    S+   20:39   0:00 top
root        82  0.0  0.0  10620  3240 pts/0    R+   20:46   0:00 ps aux --sort -rss
root         1  0.0  0.0   1804  1180 ?        Sl   20:30   0:00 /init
获取内存占比最低的5个进程(升序)
bash
root@momen-PC:~# ps aux --sort +rss | head -6
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         7  0.0  0.0   1816    80 ?        Ss   20:30   0:00 /init
root        61  0.0  0.0   1816    80 ?        Ss   20:39   0:00 /init
root         8  0.0  0.0   1816    92 ?        S    20:30   0:00 /init
root        62  0.0  0.0   1816    92 ?        S    20:39   0:00 /init
root        87  0.0  0.0   7248   516 pts/0    S+   20:48   0:00 head -6

实时查看进程top

bash
top - 18:03:50 up 1 min,  0 users,  load average: 0.13, 0.06, 0.02
Tasks:  10 total,   1 running,   9 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.1 sy,  0.0 ni, 99.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7653.3 total,   6807.2 free,    312.5 used,    533.6 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   7113.1 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  518 _apt      20   0   28848  17208  10304 S   6.2   0.2   0:01.27 https
  488 root      20   0   80400  70304  52448 S   0.5   0.9   0:00.93 apt
    1 root      20   0    1804   1180   1104 S   0.0   0.0   0:00.01 init
    7 root      20   0    1816     80      0 S   0.0   0.0   0:00.00 init
    8 root      20   0    1816     92      0 S   0.0   0.0   0:00.04 init
    9 root      20   0   10128   5056   3300 S   0.0   0.1   0:00.03 bash
  351 root      20   0    1816     80      0 S   0.0   0.0   0:00.00 init
  352 root      20   0    1816     92      0 S   0.0   0.0   0:00.00 init
  353 root      20   0   10128   5128   3376 S   0.0   0.1   0:00.04 bash
  519 root      20   0   10876   3668   3156 R   0.0   0.0   0:00.00 top
相关属性
PID 进程号
PR 优先级
NI nice值,负数表示高优先,正数低优先级
VIRT 虚拟内存总量 kB
RES 进程使用的,未被换出的物理内存大小 KB
SHR 共享内存大小 KB
S 进程状态
%CPU CPU的占比
%MEM 物理内存的占比
TIME+ 进程使用的cpu时间和,单位1/100秒
COMMAND 命令
常用选项
常用选项:
-d:指定每两次屏幕刷新的时间间隔,例如:top -d 10  #每10s刷新一次屏幕
-c:表示显示整个命令行,而不只是显示命令名。例如:top -c
 q:退出top
 N:以PID的大小的顺序排列表示进程列表,执行完top后,输入N实现排序
 P: 以CPU占用率大小的顺序排列进程列表,执行完top后,输入P实现排序
 M:以内存占用率大小的顺序排列进程列表,执行完top后,输入M实现排序

关于top的实际运用

显示momen的用户进程

top -c U [用户名]

image.png

按内存占用百分比排序

top -o %MEM
image.png


查看各进程的继承关系 pstree

pstree [开始的进程] //只能查看在这个进程上的子进程

bash
root@momen-PC:~# pstree 0
?───init─┬─init───init───bash───pstree
         ├─init───init───bash───top
         └─2*[{init}]

启动进程

手动启动

前台启动

source 脚本文件名 //不会建立子bash
bash 脚本文件名 //会建立子bash
sh 脚本文件名
. 脚本文件名 //不会建立子bash
./脚本文件名 //会建立子bash[常用]
[路径]脚本文件名 //会建立子bash

后台启动

2.若在要执行的命令后面跟随一个符号“&”,则为后台启动 如./server &
3.在shell下启动的进程就是shell进程的子进程

调度启动

事先设置好程序要运行的时间,当到了预设的时间后,系统自动启动程序
http://wiki.momen.world:8880/post/33

进程的挂载与恢复

<ctrl>+<z>:将一个正在前台执行的命令放到后台,并且暂停执行
jobs:查看当前有多少在后台运行的命令 常见用法:jobs -l

恢复进程执行有两种选择:

fg命令:将挂起的作业调至前台继续运行,用法: fg %jobnumber
bg命令:将挂起的作业在后台变成继续执行,用法:bg %jobnumber
注:%jobnumber是通过jobs命令查到的后台命令的序号

后台任务的特点

后台任务继承当前会话的标准输出(stdout)和标准错误(stderr)
因此,此后台任务的所有输出依然会在当前SHELL的命令行下显示
后台任务不就成当前会话的标准输入(stdin),此后台任务无法接收输入指令
执行后台任务的同时,用户可以在当前shell执行其他命令

kill 结束进程

结束进程的运行

中断前台进程:ctrl+c

中断后台进程:使用kill命令结束后台进程(kill -n ,n只信号编号)

kill -9 <pid>:强制终止进程

kill命令中的常见信号(可以使用kill -l 命令列出所有信号名称):
SIGHUP - 1:用户退出登陆时,会给对终端输出的进程(即:当前终端SHELL窗口产生的子进程)发送此信号,使进程退出。有些信号免疫此信号,如`nohup`启动的进程
SIGINT - 2:中断 `ctrl+c`,终止前台进程
SIGTERM - 15:友好终止进程的执行,进程可以释放资源然后退出
SIGKILL - 9:强制终止进程执行,进程资源无法释放,用于终止无法正常结束或异常的进程
SIGCONT - 18:使进程继续执行
SIGSTOP - 19:进程未结束执行,知识使进程暂停执行

kill命令中常见信号
kill -l 命令列出所有信号的名称
进程优先级:http://wiki.momen.world:8880/post/48

linux进程优先级

进程优先级用nice值表示,范围-20~19,-20为最高优先级 19为最低优先级,数字越大,优先级越低,系统进程默认优先级0

使用ps -efl或者top命令查看进程的优先级,表示优先级的两个字段PR(PRI)和NI,NI是优先值,是用户层面的概念,PR是给内核使用的进程实际优先级
命令nice用于设置进程的优先级 nice [-n] [命令[参数]...]

renice 调整运行进程优先级
bash
root@momen-PC:~# ps -efl
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root         1     0  0  80   0 -   436 -      10:33 ?        00:00:00 /init
5 S root         7     1  0  80   0 -   441 -      10:33 ?        00:00:00 /init
1 D root         8     7  0  80   0 -   441 -      10:33 ?        00:00:00 /init
4 S root         9     8  0  80   0 -  2522 do_wai 10:33 pts/0    00:00:00 -bash
0 R root       116     9  0  80   0 -  2655 -      10:33 pts/0    00:00:00 ps -efl
root@momen-PC:~# nice -n 5 ./tcp.sh & #以优先级为5来运行tcp.sh
root@momen-PC:~# ps -efl
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 T root      1107    63  0  85   5 -  2289 do_sig 22:11 pts/1    00:00:00 bash ./tcp.sh
root@momen-PC:~# renice 0 1107 #修改1107进程优先级为0
1107 (process ID) old priority 5, new priority 0
root@momen-PC:~# ps -efl
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 T root      1107    63  0  80   0 -  2289 do_sig 22:11 pts/1    00:00:00 bash ./tcp.sh
0 R root      1132    63  0  80   0 -  2655 -      22:12 pts/1    00:00:00 ps -efl

本文作者:墨洺的文档

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!