编辑
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进程优先级
renice 调整运行进程优先级

进程

每一个进程都有一个唯一的进程标识符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 许可协议。转载请注明出处!