目录
ps -elf (e显示系统所有进程 l使用长格式显示进程信息,f使用完整的格式显示进程信息)
一、查看进程
1、程序和进程的关系
程序:
保存在硬盘,光盘等介质中的可执行代码和数据
文件中静态保存的代码
进程:
在cpu及内存中运行的程序代码
动态执行的代码
父、子进程(每个程序可以创建一个或多个进程)
2、如何查看进程信息?
PS命令
ps aux 查看静态的进程统计信息 (a表示当前终端下面所有用户进程,u显示进程用户名 内存资源使用情况,x显示其他终端的所有信息)
user:代表进程用什么用户运行的
PID:进程号
cpu:代表进程占用CPU的百分比 如果越高代表进程越费CPU
MEN:代表占用内存的百分比
VSZ:代表进程占用的虚拟内存
RSS:代表进程占用的实际内存
TTY:代表运行终端 ?代表系统本身自己的
SATA:指定进程的状态 (D:不可中断的休眠状态,R:正在运行状态,S:处于休眠状态可被唤醒,T:停止状态,Z:僵尸状态,进程已经停止,但是部分进程还在内存当中,会占用资源)
START:该进程启动时间
TTME:进程在CPU中实际运行的时间
COMMAND:代表进程名称或者进程命令
ps auxh 和ps aux基本一样 只不过不显示标题
ps aux | grep wc 查看多少行
ps -elf (e显示系统所有进程 l使用长格式显示进程信息,f使用完整的格式显示进程信息)
s:表示进程状态
uid: 表示那个用户在运行进程
pid:进程号
ppid:代表父进程号
c:cpu使用率
pri:进程的优先级 数值越高优先级越高
ni:进程的谦让度
addr:进程所使用的内存地址
sz:在交换分区中占用空间大小
stime:进程开始时间
time:累计运行时间
ps -p 进程号 查看进程信息
top命令查看动态的进程排名信息
注:cpu使用率 和 cpu负载是两个概念
cpu使用率:代表进程在cpu中实际使用时间
cpu负载:cpu处理的任务数量
查看load average的命令有三个 w uptime top 高于cpu数量的百分之70时候 处于异常
第二行 指定当前系统的进程数处于各个状态的数量
- Tasks:总进程数
- running:正在运行的进程数
- sleeping:休眠的进程数
- stopped:中止的进程数
- zombie:僵死的进程数
第三行代表cpu信息 s表示cpu平均使用情况
- us 用户占用
- sy 内核占用
- ni 优先级调度占用
- id 空闲CPU,要了解空闲的 CPU 百分比,主要看%id 部分
- wa I/O 等待占用
- hi 硬件中断占用
- si 软件中断占用
- st 虚拟化占用
第四行为内存的信息
- total 总内存空间
- free 空闲内存
- used 已用内存
- buff/cache 物理内存和交换内存的缓冲区总和
ps -ef | grep 进程过滤 查看指定的进程
二、控制进程
进程的启动方式:
手工启动:(前台启动 后台启动)直接用命令启动进程 比如 复制一个很大的文件 这时候终端不能使用 必须要等进程执行完 要想在后台执行 不影响我使用终端 在命令后面加一个“&”符号即可后台运行 但是终端关闭 进程也关闭 要先在后台运行进程且终端关闭也继续运行 在前面加nohup即可
调度启动:使用at命令 设置一次性计划任务
使用crontab命令 设置周期性计划任务
举例子:每年11月12号 上午8点到10点的 30分钟 执行 ls-l /root
分 时 日 月 周
30 8-10 11.12 * ls -l /root
每个月8号 9点半 执行
30 9 8 * *
每个月每隔5天的晚上8点一刻执行
15 20 */5 * *
强后台切换进程 Ctrl+Z 将当前进程暂停保存 查看其他需要看的信息
jobs -l 列出当前系统被暂停的进程
fg +序号 恢复被暂停的进程 想恢复哪个进程就把输入哪个进程的序号
终止进程
ctrl+c 中断正在执行的命令
比如我终止PING命令
kill killall命令
kill是如何杀掉进程的? 向进程发送信号的方式杀掉进程
kill 默认选项为 -15 ,发送信号 SIGTERM,表示告诉进程自行停止运行并退出,进程可以忽略
kill -9 ,发送信号 SIGKILL,表示进程要立即退出,且不能被捕捉或忽略
kill -3 ,发送信号 SIGQUIT,表示进程自行退出,并打印进程各个线程的堆栈信息,保存路径为 /proc/${pid}/cwd,文件名为 antBuilderOutput.log
kill -1 ,发送信号 SIGHUP,表示进程重新加载配置文件,不退出