目录
进程是动态的程序,而程序是静态的进程。我们必须知道如何高效的完成自己的工作。而我们的工具就是进程。当我们的命令运行起来的时候他就是进程。我们必须知道如何去控制自己的进程比如如何开启或杀死进程。来完成我们日常的维护任务和解决系统问题。同时我们也必须学会如何管理任务。使用周期性任务设置工具可以极大提高我们工作的效率让我们脱离重复操作的命运
一、程序、进程、线程
1.释义:
- 程序:没有运行的 静态的代码
- 进程:运行起来、动态的代码
- 线程:程序的副本,把进程复制了一份,只复制了进程的一部分代码,就是为了能够执行任务即可,最小化的复制了进程的这些代码,仅满足最基本完成任务的需求。总而言之,真正执行任务的不是进程,而是线程。
2.Linux系统运行流程
- 运行进程:父进程先启动 给子进程分配资源
- 结束进程:子进程先结束 父进程收回给子进程分配的资源,然后才会停止
- 僵尸进程:如果父进程先结束,子进程还在的话,就会出现僵尸进程
二、任务管理的增删改查命令
1.PS命令(ps命令一般用于静态查看)
- ps -elf
e :显示系统内所有进程信息
l : 以长格式显示详细进程信息
f : 完整格式显示
- 进程状态释义:
- S(sleep):休眠状态进程
- R(running):正在运行的进程
- D:不可中断的休眠状态
- Z(zombie):僵尸进程
- T:停止状态,也可以是在后台暂停或者进程处于跟踪调试状态
- 表头释义:
- PID:进程的id号(progress id)具有唯一性
- PPID:父进程的ID号
- C:cpu利用率
- PRI:进程优先级(越小越高)
- NI:谦让值
- ADDR:进程内存地址
- CMD:进程启动命令
- ps -aux
a:显示终端上所有进程(包括其他进程)----全部进程
u: 列出进程的用户
x:显示所有终端的进程信息
- %cpu:cpu占用百分比
- %mem:物理内存占用百分比(memory)
- VSZ:占用虚拟内存
- RSS:实际占用内存数
- TTY:开启终端数
- STAT:优先级表示(S:高级别 T:低级别 L:多个线程 Ss:有子进程)
- COMMAND:进程启动命令
- pstree:以树形结构列出进程信息(粗略展示)
- pstree -p:显示进程id
- pstree -u:显示进程所属用户
- 举例:pstree -up 9716(搭配pid号使用)
2.其他查看线程的命令
- top命令(top命令一般用于动态查看进程信息,可以实时监控进程)
- top -H 动态查看所有线程
- cpu状态统计:
- us:(user)用户占用百分比
- sy:(system)内核占用百分比
- ni:优先占用百分比
- id:空闲空间百分比
- wa:I/O等待占用
- hi:1分钟使用率
- si:5分钟使用率
- st:15分钟使用率
top常用命令:
P键:根据CPU使用百分比大小进行排序
M键:根据驻留内存大小进行排序
N键:根据启动时间进行排序
c键:切换显示命令名称和完整命令行
h键:可以获得 top程序的在线帮助信息
k键:根据提示输入指定进程的 PID 号并按 Enter 键终止对应的进程
q键:退出 top 程序
数字1键:显示CPU个数和状态
pgrep 命令:根据特定条件定向查找进程PID
- pgrep -l 查找进程中包含log的进程 长目录显示
- pgrep -lu“用户名” 查看指定用户名下的进程
3.管理进程命令
使用 kill 命令终止进程
通过 kill 命令终止进程时,需要使用进程的 PID 号作为参数。kill 命令将给该进程发送终止信号给内核 并由内核执行中止信号,若该进程已经无法响应终止信号,则可以结合“-9” 选项强行终止进程。强制终止进程时可能会导致程序运行的部分数据丢失,因此不到不得已时不要轻易使用“kill -9 PID号”选项。
jobs:显示pid号
- jobs -l:显示所有后台运行进程的pid号
- jobs -r:只显示运行中的pid号
4.一次性计划任务
使用at命令设置的计划任务只在指定的时间点执行一次,前提是对应的系统服务atd必须已经运行。需要注意的是,计划执行任务的时间、日期必须安排在当前系统的时刻之后, 否则将无法正确设置计划任务。
设置一次性计划任务时,在 at 命令行中依次指定计划执行任务的时间、日期作为参数
(若只指定时间则表示当天的该时间,若只指定日期则表示该日期的当前时间),确认后将进入带“at>”提示符的任务编辑界面,每行设置一条执行命令,可以依次设置多条语句,最后按 Ctrl+D 组合键提交任务。所设置的命令操作将在计划的时间点被依次执行/etc/crontab——系统任务配置文件
/etc/crontab 文件中设置的是维护 Linux 操作系统所需的任务,Linux 操作系统及相关程序在安装时可自动设置,不建议用户手动修改此文件。例如,该文件中包括设置 Shell 环境、可执行路径等变量的操作,以及每小时、每天、每周、每月需要执行的任务目录。
- 管理计划任务
编辑: -e 【-u 用户名】
查看: -l 【-u 用户名】
删除: -r 【-u 用户名】注意:如果 -u 不存在就默认为当前用户
- 执行如下的“cat /etc/crontab”命令可以查看/etc/crontab 文件的具体内容
- 分钟 取值为 0~59 的任意整数小时
- 取值为 0~23 的任意整数
- 日期 取值为 1~31 的任意整数(日期在该月份中必须有效)
- 月份 取值为 1~12 的任意整数
- 星期 取值为 0~7 的任意整数,0 或 7 代表星期日
时间数值的特殊表示法
" * ”表示该范围内的任意时间
“,”表示间隔的多个不连续的时间点
“—”表示一个连续的时间范围
“/”指定间隔的时间频率示例:
每1分钟执行: /1 * * * *
每五分钟执行: /5 * * * *每小时执行: * 0 * * *
每天上午7点执行:0 7 * * *
文章介绍了程序、进程和线程的概念,强调了进程和线程在Linux系统中的运行流程。重点讲解了任务管理的相关命令,如PS命令的不同用法,动态查看进程的top命令,管理进程的kill命令,以及一次性计划任务的at命令和cron调度。内容还包括进程状态解释、内存占用指标以及计划任务的时间格式和特殊表示法。










2184

被折叠的 条评论
为什么被折叠?



