- 子进程和父进程
- 当我们打开bash,执行一个其他的命令时,比如说执行
vim a
bash就是父进程,而vim就是子进程 - 每一个进程都有一个PID,他的父进程就根据PPID来进行判断
- 当我们打开bash,执行一个其他的命令时,比如说执行
- fork and exec 过程调用的流程
- 子进程和父进程的相互调用(呼叫)被称为fork-and-exec流程
- 程序由父进程以复制(fork)的方式产生一个一模一样的子进程,然后被复制出来的子进程再以exec的方式来执行实际要进行的程序.最终产生一个子进程.
- 系统或网络服务
- 一些常驻内存的进程.比如说网络服务,系统的一些服务等.
linux 多人多任务环境
- 多人环境 每个用户登录系统后的PID不同
- 多任务行为 通过CPU切换进程的工作.
- 多重登录环境的7个基本终端窗口 用来在某一个bash卡死时用另一个来结束
- bash 环境下的工作管理(job control)
- 不可能通过tty1去管理tty2的bash.
- 将进程后台运行
&
- 将当前正在进行的工作丢到后台(暂停)
ctrl-z
- 观察目前后台运行的工作
jbos
-l
列出进程的PID号-r
仅列出正在后台运行的工作-s
仅列出正在后台暂停的工作
- 将后台工作拿到前台来处理
fg %jobnumber
- 将后台暂停的工作改变为运行的工作
bg %jobnumber
- 杀掉进程
kill -signal PID
-l
列出目前能够杀掉的进程有哪些-1
reload 配置文件-2
ctrl-c-9
强制杀掉-15
以正常方式结束一个进程
- 查看进程
ps
-A
列出所有的进程 和-e
一样-a
列出所有不跟终端相关的进程-u
列出有效使用者的进程-x
通常与-a
一起使用,列出较完整的信息-j
工作的方式
- 动态查看进程的变化
top
-d
刷新时间-p
观察某个特定的PID- 在top执行过程中可以用到的命令
?
显示top当前可以输入的命令P
以CPU的使用率排序M
以内存的使用率排序N
以PID排序T
由该PID使用的CPU总时间排序k
给某个PID发送一个signal(信号)r
给某个PID重新指定一个nice(优先级)值q
离开top
- 查看进程之间的相关性
pstree
- 查看内存使用情况
free [-b|-k|-m|-g] [-t]
-t“` 显示屋里内存与swap的总量
<ul><li>第一组表示以什么单位来表示</li>
<li>
- 查看系统与核心相关信息
uname [-asrmpi]
-a
系统所有信息-s
系统核心名称-r
核心的版本-m
本系统的硬件名称-p
CPU类型-i
硬件平台(x86)
- 查看系统启动时间和工作负载
uptime
- 查看网络信息
netstat -[atunlp]
-a
将系统上所有的联机,监听,Socket都列出-t
列出tcp网络封包的数据-u
列出udp网络封包的数据-l
列出正在监听的网络服务-p
列出该网络服务的PID
- 分析核心产生的信息
dmesg
检测系统资源变化
vmstat
参数说明:
/proc 目录表示内存,硬件,驱动等的信息.不用动.
- 根据文件或者文件系统查找正在使用该文件的进程
fuser [-umv] [-k [i] [-signal]] file/dir
-u
列出进程的PID和拥有者-m
将文件显示在该文件系统的第一行.-v
列出每个文件与进程还有命令的完整相关性-k
找出使用该文件的PID,并尝试以SIGKILL结束该PID-i
必须与-k
配合,在删除PID之间会询问使用者是否同意signal
信号