目录
一,程序和进程的关系
1,线程状态
2,进程和多线程的区别
二,查看进程
1,查看进程静态信息:ps
各个名词的解释
2, ps -elf
各个名词的解释
三,僵尸进程
4,查看进程动态信息:top
1,进程动态信息
2,进程信息区名词解释
4,top常用命令
5,查看进程信息:pgrep
6,查看进程树:pstree
7,&和job
kill命令
四,计划任务管理
1,一次性计划任务:at
2,周期性任务设置:crontab
任务配置格式
一,程序和进程的关系
程序
- 保存在硬盘,光盘等介质中可执行代码和数据
- 文件中静态保存的代码
进程
- 在CPU及内存中运行的程序代码
- 动态执行的代码
- 父子进程
- 每个程序可以创建一个或者多个进程
1,线程状态
1,新建(NEW):新创建了一个线程对象
2,可运行(RUNNABLE);线程对象创建后,其他线程(比如main线程)调用了该对象的start(方法)。该状态的线程唯一可运行线程池中,等待被线程调度选中,获取cpu的使用权
3,运行(RUNNING);可运行状态(runnable)的线程获得了cpu时间片(timeslice)执行程序代码。
4,阻塞(BLOCKED):阻塞状态状态是指线程因为某种原因放弃了cpu使用权,也既让出了cpu timelise 转到运行(running)状态。阻塞的情况分为三种:
(一)等待阻塞:运行的线程执行o.wait方法,JVM会把改线程放入等待队列中。
(二)同步阻塞:运行的1线程在获取对象的同步锁时间,若改同步锁被别的线程占用,则JVM会把改线程放入锁池中。
(三)系统资源不足)运行(running)的线程执行Thread.sleep (longms)ms)或t. join()方法,或者发出了I/o请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/o处理完毕时,线程重新转入可运行(runnable)状态。
5,死亡(DEAD)线程run()、main()方法执行结束,或者因异常退出了run()方法,则该线程结束生命周期。死亡的线程不可再次复生
2,进程和多线程的区别
进程是操作系统资源分配的基本单位,而线程是任务调查和执行的基本单位。没有线程的进程可以视为单线程,如果一个进程内有多线程,则执行过程不是一条线的,而是多条线共同完成的,线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程
二,查看进程
1,查看进程静态信息:ps
方法一:ps aux
| a | 显示终端上的所以进程,包括其他用户的进程 |
| u | 表示列出进程的用户 |
| x | 显示所以终端的进程 |
各个名词的解释
| USER | 进程的用户 |
| PID | 进程的ID |
| %CPU | 进程占用的cpu百分比 |
| %MEM | 占用内存的百分比 |
| VSZ | 该进程使用的虚拟内存量 |
| RSS | 该进程占用的物理内存量 |
| TTY | 启动进程的终端名,不是从终端启动的进程显示为 |
| STAT | D:不可中断的休眠状态;R:正在运行状态;S:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪 调试状态;Z:僵尸进程,进程已经中止,但是部分程序还在内存当中 |
| START | 进程被触发启动的时间 |
| TIME | 进程实际使用CPU运行的时间 |
| COMMAND | 进程的启动命令 |
2, ps -elf
各个名词的解释| F | 内核分配给进程的系统标记 |
| S | 进程的状态 |
| UID | 启动这些进程的用户 |
| PID | 进程的进程ID |
| PPID | 父进程的进程号(如果该进程是由另一个进程启动的) |
| C | 进程生命周期中的CPU利用率 |
| PRI | 进程的优先级(越大的数字代表优先级越低) |
| NI | 谦让度值用来参与决定优先级 |
| ADDR | 进程的内存地址/td> |
| SZ | 假如进程被换出,所需交换空间的大致大小 |
| WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 |
| STIME | 进程启动时的系统时间 |
| TTY | 进程启动时的终端设备 |
| TIME | 运行进程需要的累计CPU时间 |
| CMD | 进程的启动命令 |
三,僵尸进程
一个进程结束了,但是如果该进程的父进程已经结束了,那么该进程就不会变成僵尸进程,因为每个进程结束的1时候,系统都会扫描当前系统中所运行的1所以进程,看有没有那个进程是刚刚结束的子进程,如果是的话,就由init来接管它,成为它的父进程,子进程退出后init会回收其占用的相关资源。
但是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。
4,查看进程动态信息:top
1,进程动态信息
第一行:任务队列信息
| 19:29:21 | 系统时间 |
| up 10:20 | 系统已运行时长 |
| 1 user | 当前登录用户数 |
| load average:0.03,0.02,0.05 | 系统负载,即单位时间内系统处理的任务数,后面三个数值分别为1分钟,5分钟,15分钟前到现在的平均值 |
第二行:进程信息
| tasks | 总进程数 |
| running | 正在运行的进程数 |
| sleeping | 休眠的进程数 |
| stopped | 终止的进程数 |
| zombie | 僵死的进程数 |
第三行:CPU信息
| us | 用户占用 |
| sy | 内核占用 |
| ni | 优先级调度占用 |
| id | 空闲CPU(要了解空闲CPU百分比。主要看%id部分) |
| wa | l/o等待占用 |
| hi | 硬件中断占用 |
| si | 软件中断占用 |
| st | 虚拟化占用 |
第四行:内存信息
| total | 总内存空间 |
| free | 空闲内存 |
| used | 已用内存 |
| buff/cache | 物理内存和交互内存的缓冲区总和 |
第五行:交换空间的信息
| total | 总交换空间 |
| free | 空闲交换空间 |
| used | 已用交换空间 |
| avail Mem | 可用物理空间 |
2,进程信息区名词解释
| PID | 进程ID |
| USER | 进程用户 |
| PR | 优先级 |
| NI | 谦让值,负值表示高优先级,正值表示低优先级 |
| VIRT | 进程使用的虚拟内存大小,单位kb |
| RES | 进程使用的物理内存大小,单位kb |
| SHR | 共享内存大小,单位kb |
| S | 进程状态 |
| %CPU | 上次更新到现在的CPU占用百分比 |
| %MEM | 进程使用的物理内存百分比 |
| TIME | 进程使用的CPU时间总计,单位1/100秒 |
| COMMAND | 命令名/命令行 |
4,top常用命令
| P | 根据CPU使用百分比大小进行排序 |
| M | 根据驻留内存大小进行排序 |
| N | 根据启动时间进行排序 |
| c | 切换显示命令名称和完整命令行 |
| h | 可以获得top程序的在线帮助信息 |
| k | 根据提示输入指定进程的PID号并按Enter键终止对应的进程 |
| q | 退出top程序 |
| 数字1 | 显示CPU个数和状态 |
5,查看进程信息:pgrep
6,查看进程树:pstree
7,&和job
&:表示挂起当前进程不输出结果
jobs -l :查看处于后台的任务
bc命令:可以将后台中暂停指定的任务恢复
fg命令:可以将后台任务放到前台
kill命令
四,计划任务管理
1,一次性计划任务:at
2,周期性任务设置:crontab
编辑计划任务
crontab -e [-u 用户名]
查看计划任务
crontab -l [-u 用户名]
删除任务计划
crontab -r [-u 用户名]
编辑计划任务
crontab -e [-u 用户名]
查看计划任务
crontab -l [-u 用户名]
删除任务计划
crontab -r [-u 用户名]
每隔三分钟,自动查看时间和挂载磁盘分区表,并且输出结果到/opt/kk.txt
任务配置格式
| 字段 | 说明 |
| 分钟 | 取值为0~59之间的任意整数 |
| 小时 | 取值为0~23之间的任意整数 |
| 日期 | 取值为1~31之间的任意整数 |
| 月份 | 取值为1~12之间的任意整数 |
| 星期 | 取值为0~7之间的任意整数,0或7代表星期日 |
| 命令 | 要执行的命令或程序脚本 |
| 时间数值的特殊表示方法 | |
|---|---|
| * | 表示该范围内的任意时间 |
| , | 表示间隔的多个不连续时间点 |
| - | 表示一个连续的时间范围 |
| / | 指定间隔的时间频率 |



