进程和计划任务
程序:
是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种 需求的信息化工具用于描述进程要完成的功能,是控制进程执行的指令集
什么是进程?
进程就是程序的一个副本
进程ID(Process ID,PID)号码被用来标记各个进程
UID、GID语境决定对文件系统的存取和访问权限
通常从执行进程的用户来继承
存在生命周期
都由其父进程创建
全生命周期:(诞生——>——死去)进程的产生,运行,消失(僵尸进程)
进程的创建:
init:第一个进程,centos7以后为systemd
进程:都由其父进程创建,fork(),父子关系,CoW:Copy On Write 写实更新,有数据写入子进程需要新的内存空间
线程干活 进程A 公司负责下发任务 存储一些 共享的资源
进程管理的命令
ps:(查看静态的进程统计信息 process state)
1 ps aux #基本格式,aux 前不加”-“
2 a:显示终端上的使用进程,包括其他用户的进程
3 u:表示列出进程的用户
4 x:显示所有终端的进程
5 ps aux | wc -1
6 #结合管道符查询
USER | 进程的用户 |
PID | 进程的ID |
%CPU | 进程占用CPU的百分比 |
%MEN | 进程占用内存的百分比 |
VSZ | 进程占用的虚拟内存 |
RSS | 进程占用的物理内存 |
TTY | 启动进程的终端名,不是从终端启动的进程显示为? |
STAT | 该进程的状态 D:不可中断的休眠状态; R:正在运行状态; S:处于休眠状态,可被唤醒; T:停止状态,可能是在后台暂停或进程处于跟踪调试状态; Z: 僵尸进程,进程已经中止,但是部分程序还在内存当中 (查看僵尸进程,及时将其kill); w 进入内存交换(从内核2.6开始无效); X,死掉的进程;< 高优先级; N 低优先级; L 有些页被锁进内存; s 包含子进程; + 位于后台的进程组; l 多线程,克隆线程) |
START | 进程开始的时间 |
TIME |
进程实际使用cpu运行的时间 |
COMMAND | 进程的启动命令 |
top命令:动态查看进程的信息
1 -d 秒数:#指定 top 命令每隔几秒更新。默认是 3 秒; 2 -b:#使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重新定向到文件中; 3 -n 次数:#指定 top 命令执行的次数。一般和"-"选项合用; 4 -p 进程PID:#仅查看指定 ID 的进程; 5 -s:#使 top 命令在安全模式中运行,避免在交互模式中出现错误; 6 -u 用户名:#只监听某个用户的进程;
五行信息注释:
第一行任务队列信息 | 17:04:05(系统时间)up 1:44(系统已运行时长)1user(当前登录用户数)oad average: 0.00, 0.01, 0.05(系统负载,即单位时间内系统处理的任务数,后面三个数值分别为1分钟、5分钟、15分钟前到现在的平均值)(Load Average的值应该小于CPU个数核数0.7) |
第二行任务队列信息 | Tasks(总进程数)running(正在运行的进程数 )sleeping(休眠的进程数) stopped(中止的进程数) zombie(僵死的进程数) |
第三行任务队列信息 | us(用户占用)sy(内核占用)ni(优先级调度占用)id(空闲CPU,要了解空闲的CPU百分比,主要看%id 部分)wa(I/O等待占用)hi(硬件中断占用)si(软件中断占用)st(虚拟化占用) |
第四行任务队列信息 | total(总内存空间)free(空闲内存)used(已用内存)buff/cache(物理内存和交换内存的缓冲区总和) |
第五行任务队列信息 | total(总交换空间)free(空闲交换空间)used(已用交换空间)avail Mem(可用物理空间) |
各行列表注释:
PID
|
进程id |
USER | 进程所有者的用户名 |
PR | 优先级 |
NI | 谦让度值。负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量 |
RES | 进程使用的物理内存大小 |
SHR | 共享内存大小 |
S | 进程状态 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计 |
COMMAND | 命令名/命令行 |
补充:htop——增强版的top
pgrep:查看指定的进程
1 -U #指定用户 2 -l: #显示进程名 3 -a: #显示完整格式的进程名 4 -P pid #显示指定进程的子进程
pstree:以树形结构列出进程信息
1 -p #按时进程数 ,并显示进程号 2 -a #显示启动每个进程对应的完整指令,包括启动进程的路径、参数等 3 -u #显示用户切换 4 -H #pid 高亮显示指定进程及其前辈进程
lsof:列出已经打开的文件
1 -c 字符串 #只列出以字符串开头的进程打开的文件 2 +d 目录名 #列出某个目录中所有被进程调用的文件 3 -u 用户名 #只列出某个用户的进程打开的文件 4 -p pid #列出某个PID进程打开的文件
vmstat:性能监控
free:查看内存
(echo 3 > /proc/sys/vm/drop_caches)——清缓存
iostat:查看磁盘的读写性能
iftop:监控流量
dstat:监控网络
计算机五大性能
内存 :free top
cpu :top ps aux
磁盘 :
大小:lsblk 剩余df
读写 :dd iostat vmstat
网络 dstat iftop lsof
进程前后台的调用:
命令 +&:将前台任务放在后台运行
例:dd if=/dev/zero of=/dev/null &
jobs:查看后台运行的命令
fg1:把后台命令调回前台
ctrl+z:将命令调入后台并挂起
bg1:将后台被挂起的命令进行运行
计划任务:
at:一次性的计划任务
at [HH:MM] [yyyy-mm-dd]
[HH:MM] :小时和分钟
[yyyy-mm-dd]:年月日
例:
crontab:周期性的计划任务
1 -e #编辑一个定时任务
2 * * * * *(分 ,时,日,月,周)(分:0-59,时(0-23),日(1-31),月(1-12)
周(0-6)(0和7代表星期天)
3 -u #指定用户
4 -l #目前有哪些计划任务
5 -r #删除计划任务
格式:分时日月周 + 命令 (绝对路径)
例:每天晚上的18点55分在opt目录下复制/etc/passwd
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?