携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天, 点击查看活动详情
进程
什么是进程:
- 开发写的代码称为程序,我们将这个程序运行起来称为进程。
什么是线程:
- 是操作系统内运行调度的最小单位,包含在进程中,是进程中的实际运作单位。
查看进程信息
静态查看进程信息 ps
- ps aux
- ps -elf(注意一定有-)
- ps -aT (查看线程信息)
常用选项:
a:显示终端上所以的进程,包括其他用户的进程
u:表示列出进程的用户
x:显示所有终端的进程
-e:显示系统内所有的进程信息
-l:使用长格式显示进程信息
-f:使用完整的格式显示进程信息
-a:显示所有进程的pid
-T:查看线程信息
- ps aux 各字段的含义
- user:进程的用户
- pid:进程的id
- %cpu:进程占用的cpu百分比
- %mem:进程占用的内存百分比
- vsz:进程使用的虚拟内存量
- rss:进程占用的物理内存量
- ttl:启动进程的终端名,不是从终端启动的进程则显示?
- stat:该进程的状态(D:不可中断的休眠状态,R:正在运行状态,S:可被唤醒的休眠状态,T:停止状态,Z:僵尸进程)
- start:该进程被触发启动时间
- time:该进程实际使用cpu运行的时间
- command:进程的启动命令
僵尸进程:僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源。
- ps -elf各字段含义
- F:内核分配给进程的系统标记
- S:进程的状态
- UID:启动这些进程的用户
- PID:进程的进程id
- PPID:父进程的进程号
- C:进程生命周期中的cpu利用率
- PRI:进程的优先级(数字越大优先级越低)
- NI:谦让度值用来参与与决定优先级
- ADDR:进程的内存地址
- SZ:假如进程被换出,所需交换空间的大小
- WCHAN:若该进程在休眠,则显示睡眠中的系统函数名
- STIME:进程启动的系统时间
- TTY:进程启动时的终端设备
- TIME:运行进程需要的累计cpu时间
- CMD:进程的启动命令
动态查看进程信息 top
- top -H(查看线程)
-
load average(系统负载平均值):后面三个数值代表一分钟,五分钟,十五分钟的负载情况,如果超过cpu内核的百分之七八十,代表高负载,会出现问题。
-
top w uptime 均可查看
- buff(缓冲)/cache(缓存):- 缓存(cache)是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。缓冲(buffer)是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入。
top常用命令:
- P键:根据cpu使用百分比大小进行排序
- M键:根据驻留内存大小进行排序
- N键:根据启动时间进行排序
- c键:切换显示命令名称和完整命令行
- h键:获得top程序的在线帮助信息
- k键:根据输入的pid号中止相对进程
- q键:退出top程序
- 数字1键:显示cpu的个数和状态
根据条件查看进程 pgrep
- -U:指定用户
- -l:显示进程名
- -t:指定终端(TTL)
根据树状结构查看进程 pstree
- -a:显示启动每个进程对应的完整指令
- -p:显示PID
- -u:显示进程的用户名称
进程控制
启动进程
- 前台启动:用户输入命令,直接执行程序。
- 后台启动:在命令行尾加入“&”符号(在后台中可以查看到)
- 使用at命令,设置一次性计划任务。
- 使用crontab命令,设置周期性计划任务。
调度进程
- &:将任务放到后台执行
- ctrl z:将当前进程挂起,调入后台停止运行
- jobs:查看后台的任务列表
- fg 序号:恢复后台任务,序号是指定
- bg序号:将后台的的任务继续执行
中止进程
- kill pid
- killall 进程名
- pkill [-U 用户名] 进程名
- pkill [-t 终端号] 进程名
- -9:强制
kill与kill -9的区别:kill默认-15 ,两者接收的信号不同 ,kill是SIGTERM,让进程自行停止并退出,kill -9是SIGKILL,强制让进程停止退出,不能忽略
常用信号
计划任务管理
一次性任务设置at
步骤:
- at HH:MM yyyy-mm-dd (指定时间编排)
- 设置命令 ctrl d (提交命令)
- atq (查询任务列表)
- atrm(删除任务)
周期性任务设置crontab
主要设置文件:
全局配置文件,位于文件: /etc/crontab
系统默认的设置,位于目录: /etc/cron.*/
用户定义的设置, 位于文件: /var/spool/cron/用户名
-
crontab -e [-u 用户名] 编辑计划任务
-
crontab -l [-u 用户名] 查看计划任务
-
crontab -r [-u 用户名] 删除计划任务
-u选项缺省时默认针对当前用户,只有超级用户才可以使用-u
-
首先要确保crond服务是打开的。
-
crontab任务配置的格式
- 时间数值的特殊表示方法
| 表示方法 | 含义 |
|---|---|
| * | 表示任意时间 |
| , | 表示不连续的时间间隔 |
| - | 表示连续时间范围 |
| / | 表示间隔频率 |
实例
-
编辑计划任务
-
查看任务,删除任务
注:以下两种方式也可以计划编辑任务
1.直接用 vim /etc/crontab 进行编辑计划任务
2.使用 echo ‘什么时候要执行的计划任务’ > /var/spool/cron/root 来编辑计划任务