监控和管理linux进程
1、什么是进程以及如何查看进程
进程是已启动的可执行程序的运行中的实例。进程有以下组成部分:已分配的内存地址空间;安全属性;程序代码的一个或多个执行线程;进程状态。
进程状态:运行中 R;睡眠 S D K;已停止 T;僵停 Z X
如何列出进程
ps aux 显示所有进程,包含用户感兴趣的列,以及没有控制终端的进程
ps lax 提供更多技术详细信息
ps -ef 显示所有进程
top 追踪显示进程
pstree 树形格式显示,可查看父子关系
ps 若不使用选项,将选择有与当前用户相同UID并与调用ps所处同一终端关联的所有进程
2、作业和会话
作业控制是一种命令shell功能,允许单个shell实例运行和管理多个命令。没有作业控制时,父级shell分出子进程以运行命令,保持睡眠状态直到子进程退出。
前台进程是在终端窗口中运行的命令。
后台进程是以无终端的形式启动的,因为它不需要终端交互。在ps列表中,此类进程将在TTY列种显示一个?。
任务命令都可以在后台启动,只需在命令行中附加&符号。bash shell显示作业编号和新的子进程的PID。
jobs 查看作业
ps j 显示作业信息
fg %job number 将后台作业置于前台
bg %job number 在后台重新启动作业
3、中断进程
信号是专递至进程的软件中断。信号向执行中的程序报告事件。生成的信号的事件可以是错误或外部事件,或者来自于明确请求(如使用信号发送命令或键盘序列)。
信号编号 名称 定义 用途
1 HUP 挂起 用于报告终端控制进程的终止,也用于进程重新初始化
2 INT 键盘中断 导致程序终止,可被拦截和处理。ctrl-c发送
3 QUIT 键盘退出 通过ctrl-\发送
9 KILL 中断 立即终止程序,无法被拦截、忽略或处理
15 TERM 终止 导致程序终止,可以被拦截、忽略或处理
18 CONT 继续 发送至进程使其恢复(若已停止)
19 STOP 停止 暂停进程,无法被拦截或处理
20 TSTP 键盘停止 可以被拦截、忽略或处理,通过ctrl-z发送
用户向当前的前台进程发送信号,具体操作为键入键盘控制序列以暂停(ctrl-z)、中断(ctrl-c)或核心转储(ctrl-\)该进程。
向后台进程或另一会话中的进程发送信号,需要使用信号发送命令。
kill命令根据ID向进程发送命令,该命令可用于发送任何信号,而不仅仅是终止程序。
kill -signal PID 或者直接输入信号编号(如-9)
killall -signal command_patten
killall -signal -u username command_patten
pkill -signal -G GID command_patten
pkill -signal -P PID command_patten
pkill -signal -t terminal_name -U UID command_patten
4、监控进程活动
负载平均值:负载平均值是负载计算例程的结果。整体而言,它指的是最近1分钟、5分钟和15分钟内系统活动数据的三个显示值的平均值。
如何显示负载平均值
w
top
uptime
gnome-system-monitor
负载平均值除以系统中的逻辑cpu数,值低于1表示资源利用率较好,等待时间很短;值高于1表示资源饱和,而且有一定的服务等待时间。
top是系统进程的动态视图,显示摘要标题,以及与ps信息类似的进程或线程列表。
基本操作
?或h 交互式操作帮助
1、t、m 切换到负载、线程和内存标题
1 标题中切换显示单独cpu信息或所有cpu汇总
u、U 交互式筛选过滤用户
M 按内存使用率,以降序排序
P 按处理器使用率,以降序排序
q 退出