一、进程管理

前台进程:一般是指占据着标准输入和/或标准输出的进程
后台进程:不占据
默认开启的进程都是前台进程
ctrl+C 中断
ctrl+z 从前台转入后台
bg 后台进程编号 让其在后台运行
ls -R / & 让其在后台进行

使一个进程在后台进行
1.ctrl+z将前台进程调入后台,默认进行到后台后处于停止状态
若想要在后台运行该后台进程,使用 bg # (#表示后台进程编号),此时ctrl+c不管用
2.在开启进程的时候,使用&符号缀在命令之后,也是在后台运行该进程

使用fg命令可以将已被调入后台的进程重新调回前台运行
fg # (#表示后台进程编号)

jobs 列出后台进程
+:将默认操作的进程
-:将第二个操作的进程

杀后台进程:kill -9 PID

红帽5支持 kill %1 杀死一号进程

PRI:优先级

renice:调整NI值
renice -10 PID

nice:在执行命令的时候直接指定NI值
nice -n +15 vim .bashrc

trap 捕捉指定信号,但是不完成信号本身的功能,而是执行COMMAND部分(信号名字必须大写)
trap ‘命令’ SIG_SPECIFY
trap `echo "not exists"` SIGINT 捕捉到ctrl+c,输出not exists

进程的调度执行
守护进程(系统服务),可中断式的睡眠状态进程
ls /etc/init.d

kill:后面加PID,向进程或进程组发生信号
2:中断信号,CTRL+C
9:强行终止机制
15:终止进程,默认的信号
kill -l
2) SIGINT(中断) 9) SIGKILL(强制终止机制) 15) SIGTERM

pkill :后面加进程名称,结束进程
pkill vim

killall : kill processes by name
比pkill效率更高一点

二、系统监控命令

ps 查看进程

输出进程状态的即时点信息
选项:
a:所有与终端有关的进程
u:按用户名和启动时间的顺序来显示进程
x:所有与终端无关的进程

    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root 0.0 0.5 ? Ss : : /sbin/init
root 0.0 0.0 ? S : : [kthreadd]
root 0.0 0.0 ? S : : [migration/] USER: 进程所有者
PID: 进程ID
%CPU: 占用的 CPU 使用率
%MEM: 占用的内存使用率
VSZ: 占用的虚拟内存大小
RSS: 占用的内存大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 进程状态:
START: 启动进程的时间;
TIME: 进程消耗CPU的时间;
COMMAND:命令的名称和参数;
=========================================进程STAT状态==================================
D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行,在可中断队列中;
S 处于休眠状态,静止状态;
T 停止或被追踪,暂停执行;
W 进入内存交换(从内核2.6开始无效);
X 死掉的进程;
Z 僵尸进程不存在但暂时无法消除;
W: 没有足够的记忆体分页可分配
WCHAN 正在等待的进程资源;
<: 高优先级进程
N: 低优先序进程
L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O),即,有些页被锁进内存 s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;

进程的优先级
1.占据CPU处理的时间长短
2.被CPU加载处理的机会

数字越小,优先级越高

0-139
0-99:系统默认定义的
100-139:用户可以调整的

NICE 调整nice偏移量,修改优先级 -20~+19

普通用户只能增加nice值,只能使用正整数的nice值
管理员root可以使用负数的nice值

数字越小,优先级越高
120 0

ps axo user,pid,command | head -
USER PID COMMAND
root /sbin/init
pstree :显示进程之间的父子关系
pstree
init─┬─abrtd
├─acpid
├─atd
├─auditd───{auditd}
├─automount───*[{automount}]
├─console-kit-dae───*[{console-kit-da}]
├─crond
├─dbus-daemon───{dbus-daemon}
├─hald───hald-runner─┬─hald-addon-acpi
│ ├─hald-addon-inpu
│ └─hald-addon-rfki
├─login───bash
├─master─┬─pickup
│ └─qmgr
├─mdadm
├─*[mingetty]
├─rpc.idmapd
├─rpc.statd
├─rpcbind
├─rsyslogd───*[{rsyslogd}]
├─sshd───sshd───bash───pstree
└─udevd───*[udevd]

pgrep
查看进程的pid

pgrep ps
36

top

top:模式化命令,全屏,动态显示进程信息,默认情况下每三秒刷新一次
M:按照内存使用率,从大到小排序显示
P:按照CPU处理的时间排序显示
T:按照运行时间排序显示
l:是否显示开启时间和平均负载的信息
m:是否显示内存和交换分区的信息
t:是否显示任务量和CPU的信息 k PID;结束进程
q:退出TOP界面 -d TIME:修改自动刷新时间
top - :: (系统时间)up  :(开机时间),   users,  load average(负载平均值,1分钟,5分钟,15分钟): 0.07, 0.07, 0.01
Tasks: total, running, sleeping, stopped, zombie(僵尸)
Cpu(s)(只有一个CPU): 0.3%us, 0.3%sy, 0.0%ni(nice), 99.0%id(空闲), 0.0%wa(wait), 0.0%hi(硬交换), 0.3%si(软交换), 0.0%st
Mem: 249620k total, 243048k used, 6572k free, 23696k buffers(缓冲区存元数据信息)
Swap: 524280k total, 0k used, 524280k free, 144352k cached(缓存区存数据信息)

netstat

常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

vmstat:虚拟内存的统计信息

vmstat 1 10:每隔一秒刷新一次,一共显示10次

vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st

r :表示运行队列,如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高

b :表示阻塞的进程数

swpd :虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器

free :空闲的物理内存的大小

buff : 系统占用的缓存大小

cache :直接用来记忆我们打开的文件,给文件做缓冲

si :每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了

us :用户CPU时间

sy :系统CPU时间

so : 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

sy : 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

id : 空闲 CPU时间,一般来说,id + us + sy = 100

wt : 等待IO CPU时间。

lsof

列出打开的文件

它常用于以列表的形式显示所有打开的文件和进程。打开的文件包括磁盘文件、网络套接字、管道、设备和进程。使用这条命令的主要情形之一就是在无法挂载磁盘和显示正在使用或者打开某个文件的错误信息的时候。使用这条命令,你可以很容易地看到正在使用哪个文件。

网络包分析器:tcpdump

 Tcpdump是最广泛使用的网络包分析器或者包监控程序之一,它用于捕捉或者过滤网络上指定接口上接收或者传输的TCP/IP包。它还有一个选项用于把捕捉到的包保存到文件里,以便以后进行分析。  

-h:查看命令帮助

-i:网络接口

-c :需要输出包数量

进程监控:Htop

  Htop 是一个非常高级的交互式的实时linux进程监控工具。 它和top命令十分相似,但是它具有更丰富的特性,例如用户可以友好地管理进程,快捷键,垂直和水平方式显示进程等等。

监控Linux磁盘I/O :Iotop

 Iotop命令同样也非常类似于top命令和Htop程序,不过它具有监控并显示实时磁盘I/O和进程的统计功能。在查找具体进程和大量使用磁盘读写进程的时候,这个工具就非常有用。  

输入/输出统计:Iostat

  Iostat是一个用于收集显示系统存储设备输入和输出状态统计的简单工具。这个工具常常用来追踪存储设备的性能问题,其中存储设备包括设备、本地磁盘,以及诸如使用NFS等的远端磁盘。

%user: 在用户级别运行所使用的CPU的百分比.

%nice:优先进程消耗的CPU时间,占所有CPU的百分比.

%system: 在系统级别(kernel)运行所使用CPU的百分比.

%iowait: CPU等待硬件I/O时,所占用CPU百分比.

%steal: 管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比.

%idle: CPU空闲时间的百分比.

tps: 每秒钟发送到的I/O请求数.

KB_read /s: 每秒读取的block数.

KB_wrtn/s: 每秒写入的block数.

KB_read: 启动到现在 读入的block总数.

KB_wrtn: 启动到现在写入的block总数.

实时局域网IP监控:IPTraf

IPTraf是一个在Linux控制台运行的、开放源代码的实时网络(局域网)监控应用。它采集了大量信息,比如通过网络的IP流量监控,包括TCP标记、ICMP详细信息、TCP/UDP流量分离、TCP连接包和字节数。同时还采集有关接口状态的常见信息和详细信息:TCP、UDP、IP、ICMP、非IP,IP校验和错误,接口活动等。

服务管理程序:sysv-rc-conf

  Linux 系统任何时候都运行在一个指定的运行级上,并且不同的运行级的程序和服务都不同,所要完成的工作和要达到的目的都不同,系统可以在这些运行级之间进行切换,以完成不同的工作。sysv-rc-conf是一个强大的服务管理程序,用于查看程序和服务的运行级别。

监视每个进程使用的网络带宽:NetHogs

  NetHogs是一个开放源源代码的很小程序(与Linux下的top命令很相似),它密切监视着系统上每个进程的网络活动。同时还追踪着每个程序或者应用所使用的实时网络带宽。

监视网络带宽:iftop

  iftop是另一个在控制台运行的开放源代码系统监控应用,它显示了系统上通过网络接口的应用网络带宽使用(源主机或者目的主机)的列表,这个列表定期更新。iftop用于监视网络的使用情况,而'top'用于监视CPU的使用情况。iftop是'top'工具系列中的一员,它用于监视所选接口,并显示两个主机间当前网络带宽的使用情况。

<= => :表示的是流量的方向。
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

界面操作:

按h切换是否显示帮助;

按n切换显示本机的IP或主机名;

按s切换是否显示本机的host信息;

按d切换是否显示远端目标主机的host信息;

按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;

linux系统监控工具——Conky

Conky 是一个应用于桌面环境的系统监视软件,可以在桌面上监控系统运行状态、网络状态等一系列参数,而且可自由定制,但对于新手来说可能会比较难于上手。

Conky是一种自由软件,用于X视窗系统的系统监视,可以在FreeBSD、OpenBSD和各种Linux发布上使用的自由软件。Conky具有很高的可配置性,可以监视许多系统参数,如:CPU、内存、交换内存、硬盘使用情况等状态;各种硬件的温度;系统的进程(top);网络状态;电池电量;系统信息和邮件收发;各种音乐播放器MPD、XMMS2、BMPx、Audacious)的控制。不像其他系统监视器那样需要高级别的部件工具箱(widget toolkits)来渲染他们的信息,Conky可以直接在X视窗下渲染,这意味着在相同配置下Conky可以消耗更少的资源。

Linux系统监控工具——Nagios

Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。[ Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

Nagios 可以监控的功能有:

1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);

2、监控主机资源(处理器负荷、磁盘利用率等);

3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法;

4、并行服务检查机制;

5、具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;

6、当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);

7、可以定义一些处理程序,使之能够在服务或者主机发生故障时起到预防作用;

8、自动的日志滚动功能;

9、可以支持并实现对主机的冗余监控;

10、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;

【linux之进程管理,系统监控】的更多相关文章

  1. .Neter玩转Linux系列之五:crontab使用详解和Linux的进程管理以及网络状态监控

    一.crontab使用详解 概述:任务调度:是指系统在某个时间执行的特定的命令或程序. 任务调度分类: (1)系统工作:有些重要的工作必须周而 复始地执行. (2)个别用户工作:个别用户可能希望执 行 ...

  2. Linux操作系统的进程管理

    Linux操作系统的进程管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.进程相关概念 1>.进程概述 内核的功用: 进程管理.文件系统.网络功能.内存管理.驱动程序. ...

  3. linux 系统管理--进程管理

    目录 linux 系统管理--进程管理 一.进程基本概述 二.监控进程状态 三.进程的优先级[进阶] 四.企业案例,Linux假死是怎么回事 五.后台进程管理 六.系统平均负载[进阶] linux 系 ...

  4. Linux:进程管理

    Linux:进程管理 进程间通信 文件和记录锁定. 为避免两个进程间同时要求访问同一共享资源而引起访问和操作的混乱,在进程对共享资源进行访问前必须对其进行锁定,该进程访问完后再释放.这是UNIX为共享 ...

  5. Linux操作系统的进程管理和作业管理

    Linux操作系统的进程管理和信号 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.lsof命令详解 1>.lsof概述 list open files查看当前系统文件的工 ...

  6. 第三方跨平台进程和系统监控库gopsutil

    gopsutil psutil是一个跨平台进程和系统监控的Python库,而gopsutil是其Go语言版本的实现.本文介绍了它的基本使用. Go语言部署简单.性能好的特点非常适合做一些诸如采集系统信 ...

  7. [Linux]系统管理: 进程管理(ps/top/pstree/kill/pkill), 工作管理, 系统资源查看, 系统定时任务

    进程管理:查看与终止 进程查看 1. 进程是正在执行的程序或命令. 2. 进程管理的作用: 判断服务器健康状态, 查看系统中所有进程 杀死进程 3. 查看系统中所有进程 ps aux    # 查看系 ...

  8. Linux学习-进程管理

    为什么进程管理这么重要呢? 这是因为: 首先,我们在操作系统时的各项工作其实都是经过某个 PID 来达成的 (包括你的 bash 环境), 因此,能不能进行某项工作,就与该进程的权限有关了. 再来,如 ...

  9. Linux内核——进程管理与调度

    进程的管理与调度 进程管理 进程描写叙述符及任务结构 进程存放在叫做任务队列(tasklist)的双向循环链表中.链表中的每一项包括一个详细进程的全部信息,类型为task_struct,称为进程描写叙 ...

随机推荐

  1. Mysql查询某字段值重复的数据

    查询user表中,user_name字段值重复的数据及重复次数 select user_name,count(*) as count from user group by user_name havi ...

  2. JBoss AS7(Application Server 7)的Standalone模式和Domain模式

    JBoss AS7(Application Server 7)支持两种引导模式:standalone和domain(域). Standalone模式对于很多应用,并不需要domain管理能力,JBos ...

  3. css渲染(一) 字体和文本

    一.字体属性 1.默认字体系列 chrome/opera:"宋体" firefox:"微软雅黑" safari/IE:Times,"宋体" ...

  4. PHP网站的安全要点

    1. 删除不必要的模块 PHP随带内置的PHP模块.它们对许多任务来说很有用,但是不是每个项目都需要它们.只要输入下面这个命令,就可以查看可用的PHP模块: # php - m 一旦你查看了列表,现在 ...

  5. java打包项目将配置文件放在包外面(后续还会有补充)

    项目中也经常单独将一部分功能独立做Java Project,然后打成jar包供其他项目调用.如果jar包中需要读取配置文件信息,则很少把该配置打进jar包,因为它不方便修改,更多都是采用jar包读取外 ...

  6. 如何使用 VS2015 进行远程调试?

    VisualStudio\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger 直接复制 Remote Debugger 文件,里面包含了 ...

  7. 《android开发进阶从小工到专家》读书笔记--HTTP网络请求

    No1: 客户端与服务器的交互流程: 1)客户端执行网络请求,从URL中解析出服务器的主机名 2)将服务器的主机名转换成服务器的IP地址 3)将端口号从URL中解析出来 4)建立一条从客户端与Web服 ...

  8. React Native填坑之旅 -- FlatList

    在React Native里有很多种方法来创建可滚动的list.比如,ScrollView和ListView.他们都各有优缺点.但是在React Native 0.43里增加了两种行的list vie ...

  9. python 爬取糗事百科 gui小程序

    前言:有时候无聊看一些搞笑的段子,糗事百科还是个不错的网站,所以就想用Python来玩一下.也比较简单,就写出来分享一下.嘿嘿 环境:Python 2.7 + win7 现在开始,打开糗事百科网站,先 ...

  10. Hadoop压缩

    为什幺要压缩? 压缩会提高计算速度?这是因为mapreduce计算会将数据文件分散拷贝到所有datanode上,压缩可以减少数据浪费在带宽上的时间,当这些时间大于压缩/解压缩本身的时间时,计算速度就会 ...