手把手教你如何管理进程

68 阅读7分钟

一、进程及其命令介绍

1.1 什么是进程 要想了解进程,首先我们要了解什么是程序。

程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具;而进程则是运行中的程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位。

在Linux系统中:

进程ID(Process ID,PID)号码被用来标记各个进程 UID、GID、和SELinux语境决定对文件系统的存取和访问权限 通常从执行进程的用户来继承 存在生命周期 都由其父进程创建

1.2 进程的特征

  • 动态性:进程是程序的一次执行过程是临时的,有生命期的,是动态产生,动态消亡的
  • 并发性:任何进程都可以同其他进程一起并发执行
  • 独立性:进程是系统进行资源分配和调度一个独立单位
  • 结构性:进程由程序、数据和进程控制块三部分组成

二、进程管理的相关命令

2.1 ps命令

ps,全称 process state,进程状态。

ps可以查看进程当前状态,默认显示当前终端中的进程,Linux系统各进程的相关信息均保存在  /proc/pid号 下的各文件中。

image.pngps aux(可以查看系统中的所有进程)

image.png USER:进程的属主

PID:进程号

%CPU:进程所占CPU的百分比

%MEM:进程所占物理内存的百分比

VSZ:进程所占用的虚拟内存的大小

RSS:进程所占用的物理内存的大小

TTY:进程是在哪个终端运行的;tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用

pts/1,依次増长

STAT:进程的状态;D为不可被唤醒的睡眠状态,通常用于 I/O ;R为该进程正在运行;S为该进程处于睡眠状态,可被唤醒;T为停止状态,可能是在后台暂停或进程处于除错状态;Z为僵尸进程,进程已经中止,但是还是占用硬件资源;X为死掉的进程;< 为高优先级;N为低优先级;L为被锁入内存; s 为包含子进程;l 为多线程;+为位于后台

START:进程的启动时间

10.TIME:进程占用CPU的运算时间

COMMAND:产生该进程的命令

ps -le(查看系统中所有的进程)
(注:不仅可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级)

image.png F:进程标志,说明进程的权限,常见的标志有两个: 1:进程可以被复制,但是不能被执行;4:进程使用超级用户权限

S:进程状态。具体的状态和 ps aux 命令中的 STAT 状态一致

UID:运行此进程的用户的 ID

PID:进程号

PPID:父进程号

C:进程的CPU使用率,单位为百分比

PRI:进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;系统定义不可以人为修改

NI:进程的优先级,数值越小,该进程越早被执行;可以人为修改

ADDR:该进程在内存的哪个位置

SZ:该进程占用多大内存

WCHAN:该进程是否运行;- 代表正在运行

TTY:该进程由哪个终端产生

TIME:该进程占用 CPU 的运算时间,注意不是系统时间

CMD:产生此进程的命令名

2.2 top命令

top 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。

image.png

image.png 第一行:

17:34:54:当前系统时间 up 6 min:系统已经运行的时间,我现在运行了6分钟 1 user:当前登录了1个用户 load average:0.00 0.14 0.12:系统在之前的1 分钟、5 分钟、15 分钟的平均负载

第二行为进程信息:

118 total:系统中的进程总数,当前为118个 1 running: 正在运行的进程数,当前为1个 117 sleeping:睡眠的进程数,当前为117个 0 stopped:正在停止的进程数,当前为0个 0 zembie:僵尸进程数,当前为0个。如果不是 0,则需要手工检查僵尸进程

第三行为CPU信息:

0.0 us :用户模式占用的 CPU 百分比 0.2 sy:系统模式占用的 CPU 百分比 0.0 ni: 改变过优先级的用户进程占用的 CPU 百分比 99.8 id:空闲 CPU 占用的 CPU 百分比 0.0 wa:等待输入/输出的进程占用的 CPU 百分比 0.0 hi:硬中断请求服务占用的 CPU 百分比 0.0 si:软中断请求服务占用的 CPU 百分比 0.0 st:st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比

第四行为物理内存信息:

1867048 total:物理内存的总量,单位为KB 1507208 free:己经使用的物理内存数量 156752 used:空闲的物理内存数量 203088 buff/cache:作为缓冲的内存数量

第五行为交换分区(swap)信息:

4194300 total:交换分区(虚拟内存)的总大小 4194300 free:空闲交换分区的大小 0 used:已经使用的交换分区的大小 1531116 avail Mem:可用内存大小

三、 kill-9命令

image.png

(注:工作中千万不要乱杀某些服务进程,不然轻则跑断腿,重则跑路)

3.1 pkill命令踢出登陆用户**

image.png

3.2 进程启动方式

进程启动方式有两种,一种是前台启动,就是我们日常输入命令后执行,如果执行的是下载或者拷贝一些超大的文件,在此期间,我们是不能进行其他操作的;另一种是后台启动,就是在前台启动的命令后面加上加上空格&后台启动的任务是挂起在后台的,在此期间,我们可以进行其他的操作

image.png

fg [序号] :将后台任务转为前台

image.png

3.3 at命令

image.png

image.png

四、 crontab命令

crontab命令用于执行重复式的命令,比如每周一都进行备份,就可以使用crontab命令,而不需要每周一都手动备份。

格式:crontab [选项] [文件]

image.png 在书写 crontab 定时任务时,需要注意以下几个事项:

1.6六个选项都不能为空,必须填写。如果不确定,则使用 * 代表任意时间。

2.crontab 定时任务的最小有效时间是分钟,最大有效时间是月。像 2018 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。

3.在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。

4.在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。

crontab -e 进入crontab编辑页面(vim编辑)

格式为:* * * * * 执行的任务

image.png

image.png

image.png

image.png

五、总结

1、掌握程序、进程、线程

2、查看进程的命令:ps aux 或者ps -elf;top;pgrep;pstree;

3.如何查看子进程?pstree ap 或者 cd /proc/数字文件中的/stat

4.启动进程:前台启动;后台启动(命令最后加&)

查看后台任务列表:jobs

调用后台进程:fg 任务列表号

ctrl+z挂起

kill -9 进程号 PID

pkill -9 进程号 PID

killall 全部进程

at 小时:分钟 年-月-日

命令:ctrl D保存运行

atq 序号

atrm +序号

crontab -e -u 用户(不写用户默认当前用户)

crontab -l -u 用户

crontab -r -u 用户

格式:分 时 日 月 周 如果忘记可以查看cat /etc/crontab

*代表任意

, 不间隔的时间,比如1,2,4 可以是每隔周几

— 连续的时间 ,例如:1-7

/ 间隔的频率 1/* 每个一分钟 1/* 每隔一个小时 1/* 每隔一天 1/* 每隔一个月