目录
1.定义
程序 没有运行的代码
进程 运行起来的代码
线程 运行进程的控制器(程序的副本 复制了进程的一部分 为了执行任务 最小化的复制了部分代码 真正执行的是线程)
2.启动 结束顺序
启动 父进程启动 子进程启动 父进程给子进程分配资源
结束 子进程结束 父进程回收资源 父进程结束 #当父进程结束 子进程还在 称之为僵尸进程
3.查看进程信息
1.ps -elf 静态查看进程信息
e 所有进程信息 l 长格式 f 完整格式
S: 进程的状态 S(sleep)休眠的进程 R(running) 正在运行的进程 D不可中断的休眠状态
z 僵尸进程 T停止状态 也可以是在后台暂停或进程处于跟踪调试的状态
UID:用户
PID:进程id号
2.ps -aux
a 终端上所有进程 u 列出用户 x 终端进程信息
%CPU 进程占用cpu百分比
%MEM 占用内存百分比
## ps -aux| grep 进程号(pid)/服务名 指定查看进程
3.pstree 树形结构查看进程信息
-p 显示进程id -u 显示进程所属用户
4.top 动态查看进程 ![](https://i-blog.csdnimg.cn/blog_migrate/033ff828a795a58729fbdbe515af3d0d.png)
us 用户占用 sy 内核占用 ni优先级高的进程占用 id 空闲cpu wa 磁盘读写性能
hi 一分钟 si 五分钟 st 十五分钟
c 根据cpu使用大小排序 1 列出cpu查看状态
## top -b -n 1 只运行一次就退出
5. pgrep
-a 进程名 -l 进程名
6.jobs
列出后台进程的状态信息 -l 进程(查看PID) -r 正在运行的后台进程
#### Ctrl+Z 将当前进程挂起并停止
4.kill杀死进程
执行kill时 实际是想内核传递信号 内核收到 有内核执行 kill -q 强制杀
failed状态 1.启动失败 2. 被强制终止
## 启动失败时处理
1.ping网关 ping本地127.0.0.1 查看是否是网络问题
2.服务器被ban了 查看配置文件
3.端口被占用 防火墙策略隔离
4.环境问题
5.crontab
周期设置任务
-e 创建计划任务(为自己创建) -u 用户名(为该用户创建) -l 查看任务
五个*组成
* | * | * | * | * |
分 | 时 | 日 | 月 | 周 |
0-59 | 0-23 | 1-31 | 1-12 | 0-7 (0和7都代表周日) |
*/5 */5 … 每五分钟执行一次 每五小时执行一次
1,2,5 3,5,7… 每1 2 5分钟 每3 5 7小时
* * * 1-5 * 每1-5月