第七章 管理与监控Linux进程

查看系统上运行的进程

使用jobs控制进程

发送信号结束和控制进程

监控资源使用情况和系统负载,调整进程优先级

7.1 进程

什么是进程

了解进程状态

查看进程列表

进程, 一个可执行的程序被执行之后的实例,包括:

分配内存的地址空间

进程的运行身份和权限的安全属性

一个或多个线程

进程状态

进程的运行环境,包括:

局部和全局变量

当前的调度上下文

已分配给进程使用的系统资源,例如文件描述符、网络端口等

pid,ppid

一个进程可以在自己的地址空间内创建一个新的子进程,子进程可以继承父进程的环境变量

每个进程都会有自己的进程id(pid),对应的父进程ID叫ppid.在rhel7里,所有的进程都是由systemd这个父进程派生出来的子进程。

子进程在运行自己的程序代码的时候,父进程往往会进入到睡眠状态。

进程状态: man 7 signal

R  进程运行

S  可中断睡眠状态

D  不可中断睡眠状态

K  可被结束的不可中断睡眠状态

Z  僵尸进程

X  进程已经退出

T  进程被暂停

列出进程:

ps aux

ps lax

ps -ef

7.2  使用jobs控制进程

前台进程 firefox,后台进程 frefox  &

&

jobs  查看后台进程,ps j

ctrl + Z 从前台放到后台并且暂停  , ctrl +c , ctrl + B

bg %id 从停止进入运行,fg

[student@localhost Desktop]$ sleep 1000 &  加一个后台进程

[2] 5192

[student@localhost Desktop]$ jobs   查看所有后台进程

[1]-  Running                 firefox &

[2]+  Running                 sleep 1000 &

[student@localhost Desktop]$ fg %1  将1进程弄到前台,ctrl +c后就关闭了火狐浏览器

=================================================

[student@localhost Desktop]$ fg //%2 将2进程放入后 台

sleep 1000

^Z                          // ctrl + Z 从前台放到后台并且暂停

[2]+  Stopped                 sleep 1000

[student@localhost Desktop]$ jobs  查看

[2]+  Stopped                 sleep 1000

[3]-  Running                 firefox &

[student@localhost Desktop]$ bg %2   //从停止进入运行

[2]+ sleep 1000 &

[student@localhost Desktop]$ jobs

[2]-  Running                 sleep 1000 &

[3]+  Running                 fi

7.3 使用信号管理进程

学会使用kill命令发送信号与进程通信

定义守护进程的角色

结束用户会话和进程

常见信号列表:

数字信号信号别名作用

1HUP挂起信号,往往可以让进程重新配置

2INT中断信号,起到结束进程的作用,和ctrl + c 的作用一样

3QUIT让进程退出,结果是进程退出

9KILL直接结束进程,不能被进程捕获

15TERM进程终止,这是默认信号

18CONT被暂停的进程将继续恢复运行

19STOP暂停进程

20TSTP用户停止请求,作用类似于ctrl + z 把进程放到后台并暂停

kill命令发送信号

kill PID

kill -signal PID

kill -l

killall 可以通过模糊匹配,同时给多个进程发送信号

$ killall command_pattern

$ killall -signal command_pattern

# killall -signal -u username command_pattern

pkill  类似killall

$ pkill command_pattern(命令可以模糊匹配)

$ pkill -signal command_pattern

# pkill -G GID command_pattern

# pkill -P PPID command_pattern

# pkill -t terminal_name -U UID command_pattern

w -f  查看系统上的所有用户会话情况, -f 输出用户来自哪里

pgrep -l -u bob  列出bob用户的所有进程,-l输出pid

w -h -u  查看bob用户会话情况

pkill -t tty3  把tty3终端下的所有进程结束,除了bash本身

pkill -9 -t tty3 把tty3终端下的所有进程结束,并且bash也结束(用户被强制退出)

pstree -p bob  列出所有属于bob的进程树,-p输出pid

pkill -P pid  匹配所有父进程pid(ppid)为该pid的所有进程

7.4 监控进程活动

系统负载的计算和意义

进程以及子进程和线程产生的计算指令都会让cpu执行,产生请求的这些进程组成"运行队列",等待cpu执行,这个队列就是系统负载

系统负载是所有cpu的运行队列的总和.

假设当前计算机有4个核心的cpu,当前的负载是 2.92 // 平均下来是2.92个进程被处理

cpu1cpu2cpu3cpu4

2.94/4(个cpu核心) =  73%的cpu资源被使用,剩下27%的cpu计算资源是空想的

假设当前的计算有2个核心的cpu,当前的负载是2.92

2.92/2 = 146%  已经验证超过了cpu的处理能力

top

常见指令

h查看帮出

1输出每个cpu的使用情况  再按一下就不输出

s设置刷新时间

b高亮现实处于R状态的进程

M按内存使用百分比排序输出

P按CPU使用百分比排序输出

kkill掉指定PID进程

q退出

h查看帮出

========================================================================================

网上找的内容:

A,Shell支持作用控制,有以下命令:

1. command& 让进程在后台运行

2. jobs 查看后台运行的进程

3. fg %n 让后台运行的进程n到前台来

4. bg %n 让进程n到后台去;

PS:"n"为jobs查看到的进程编号.

B. 命令详解

fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的

一。& 最经常被用到

这个用在一个命令的最后,可以把这个命令放到后台执行

二。ctrl + z

可以将一个正在前台执行的命令放到后台,并且暂停

三。jobs

查看当前有多少在后台运行的命令

四。fg

将后台中的命令调至前台继续运行

如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

五。bg

将一个在后台暂停的命令,变成继续执行

如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

#Linux下使用Shell命令控制任务Jobs执行

下列命令可以用来操纵进程任务:

ps 列出系统中正在运行的进程;

kill 发送信号给一个或多个进程(经常用来杀死一个进程);

jobs 列出当前shell环境中已启动的任务状态,若未指定jobsid,则显示所有活动的任务状态信息;如果报告了一个任务的终止(即任务的状态被标记为Terminated),shell 从当前的shell环境已知的列表中删除任务的进程标识;

bg 将进程搬到后台运行(Background);

fg 将进程搬到前台运行(Foreground);

7.4 监控进程活动 笔记

uptime 告诉我们开了几个小时,当前时间,有几个用户,平均负载    1  5   15分钟的平均负载

如何查看CPU

[student@localhost Desktop]$ cat  /proc/cpuinfo

[student@localhost Desktop]$ grep "model name" /proc/cpuinfo

model name: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz

model name: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz

top

top - 20:16:13 up  3:03,  2 users,  load average: 0.00, 0.02, 0.05

Tasks: 476 total,   3 running, 472 sleeping,   1 stopped,   0 zombie僵尸进程

%Cpu(s):  4.2 us,  1.5 sy,  0.0 ni, 94.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem:   1003456 total,   935516 used,    67940 free,      400 buffers

KiB Swap:        0 total,        0 used,        0 free.   266436 cached Mem  虚拟内存,即交换分区,物理内存不足时会占用

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND      按CPU的使用百分比来输出的。

1028 root      20   0  207060  37700   8252 R   5.9  3.8   0:24.00 Xorg

2356 student   20   0 1566812 166876  37648 S   4.0 16.6   3:10.96 gnome-she+

2711 student   20   0  619712  18672  12164 S   3.3  1.9   0:05.22 gnome-ter+

5965 student   20   0  123920   1920   1148 R   0.7  0.2   0:00.33 top

top

常见指令

h查看帮出

1输出每个cpu的使用情况  再按一下就不输出

s设置刷新时间

b高亮现实处于R状态的进程

M按内存使用百分比排序输出

P按CPU使用百分比排序输出

kkill掉指定PID进程

q退出

h查看帮出

转载于:https://blog.51cto.com/hciewd/1930759

RH124-07 管理与监控Linux进程相关推荐

  1. Linux系列教程——1 Linux磁盘管理、2 Linux进程管理、3 Linux系统服务、 4 Linux计划任务

    文章目录 1 Linux磁盘管理 1.磁盘的基本概念 1.什么是磁盘 2.磁盘的基本结构 3.磁盘的预备知识 1.磁盘的接口类型 2.磁盘的基本术语 3.磁盘在系统上的命名方式 4.磁盘基本分区Fdi ...

  2. linux下进程管理的原理,Linux进程管理:supervisor和nohup原理及使用

    原理 守护进程(daemon) 守护进程是一类在后台运行的特殊进程,用于执行特定的系统任务.他独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件.Linux系统的大多数服务器就是通过守护进 ...

  3. linux进程管理命令kill,Linux进程管理命令-kill | IT运维网

    格式:kill -l [signal] -l:显示当前系统可用信号 -l:显示当前系统可用信号 [root@localhost ~]# kill -l 1) SIGHUP 2) SIGINT 3) S ...

  4. linux进程管理子系统分析,linux进程管理子系统简要分析

    Linux进程管理: 进程与程序: 程序:存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体. 进程:是一个执行中的程序,它是动态的实体 进程四要素: 1. 有一段程序供其执行,这段程序不一 ...

  5. zabix监控linux进程名称,zabbix监控Linux进程方法

    利用zabbixproc.num方法监控Linux服务进程 proc.num[,,,] 监控用户某些状态的进程的数量 name- 进程名称 (默认"all processes")u ...

  6. zabix监控linux进程名称,Zabbix监控Windows进程重启

    前段时间,一个朋友咨询我怎么监控Windows进程的重启.生产环境有监控进程的启动和关闭,但重启还没想过.经过一番思考和摸索后成功完成了监控,下面把监控思路和方法分享给大家. 我首先想到的是通过Zab ...

  7. linux管理子进程c,Linux 进程管理 CGroup

    Cgroups控制cup,内存,io资源示例 http://www.cnblogs.com/yanghuahui/p/3751826.html Docker组成LXC+AUFS  LXC=cgroup ...

  8. linux代码实现进程监控,linux进程监控shell脚本代码

    为确保php页面在后台运行,写了一个监控脚本,假设程序异常退出,那么可以自动重启. shell脚本/usr/local/scripts/receve.sh内容: #!/bin/bash #funtio ...

  9. zabix监控linux进程名称,zabbix监控linux进程及服务通用key方式

    1.编写脚本 type=$1 name=$2 #服务状态监测 $1=service if [ "X${type}" = "Xservice" ];then v= ...

  10. linux 进程自重启,linux 进程监控和自动重启的简单实现

    目的:linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能. 实现原理:由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重 ...

最新文章

  1. PMP之路 – 第2天 (做模拟题)
  2. mysql2000数据库四合一_sqlserver2000个人版64
  3. Deactivate .NET refector
  4. 如何保证NFS文件锁的一致性?
  5. oracle强制切换redolog组
  6. 安装中文版cacti监控华为交换机流量并实现95计费
  7. 清华大学《操作系统》(十一):处理机调度
  8. ThinkPHP的介绍和安装
  9. linux 删除文件内容
  10. matlab做误差棒图,matlab绘制误差棒
  11. 南京大学2020计算机考研分数线,2020南京大学考研复试分数线已公布
  12. 新年计算机语言祝福语,新春祝福语
  13. 麻省理工学院计算机科学与工程博士,2020年麻省理工学院博士读几年
  14. WEB前端打印使用记录
  15. ipoo3可以用鸿蒙,真正全网通!iQOO 3支持双模六频5G,出国也能用
  16. 小白学习MySQL - 聊聊数据备份的重要性
  17. SN74AHCT541PWR缓冲器 非反向1Element 8 Bit per Element 三态 Output 20-TSSOP
  18. python循环引用的解决办法
  19. 【服务器数据恢复】DELL PowerEdge服务器RAID5数据恢复案例
  20. OpenDDS开发人员指南中文版3.23(14)DDS Security安全性

热门文章

  1. latex 插入bibtex 的文献。在参考文献上方多了一行序号,解决办法参考
  2. 华泰证券python算法工程师_华泰证券高薪诚聘 技术大牛/运维平台架构师
  3. C语言52单片机串口中断,52单片机的中断及其使用方法
  4. meson编译C代码简单介绍及实例
  5. LeetCode探索之旅(17)-69求根号
  6. 计算机如何重新连接打印机,电脑打印机脱机怎么重新连接
  7. 一次做数据报表的踩坑经历,让我领略了数据同步增量和全量的区别
  8. Java 程序员新机必备程序清单
  9. 计算机网络的静态路由配置中路由表里下一跳、路由条目等一些细节理解
  10. html超链接打开共享文件夹,访问共享文件夹的方法