Linux的进程管理、查看、杀死进程、任务管理、系统资源监控(课堂学习笔记)
2.1观察系统所有程序:ps http://blog.csdn.net/destiny_strive/article/details/aux
2.unhttp://blog.csdn.net/destiny_strive/article/details/ame命令
4.netsthttp://blog.csdn.net/destiny_strive/article/details/at命令
5.vmsthttp://blog.csdn.net/destiny_strive/article/details/at命令
一、进程管理
程序与进程之间的区别与联系?
进程是由进程控制块、程序段、数据段三部分组成。一个进程可以包含若干线程(Threhttp://blog.csdn.net/destiny_strive/article/details/ad)
进程为应用程序的运行实例,是应用程序的一次动态执行。
进程是程序在计算机上的一次执行活动。运行一个程序,就是启动了一个进程。
程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就是所有由你启动的进程。进程是操作系统进行资源分配的单位。
在Windows下,进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。
1.查看Linux启动的第一个进程
pidof init
tty、pty与pts的区别?
这个问题我参照的如下博客:
2.查看进程状态
(1)作用:将某个时间点的程序运作情况截取下来。
(2)选项和参数
http://blog.csdn.net/destiny_strive/article/details/a:和输入终端(terminhttp://blog.csdn.net/destiny_strive/article/details/al)关联的所有process,通常与x一起使用,列出完整信息。
x:后台进程,通常与http://blog.csdn.net/destiny_strive/article/details/a 这个参数一起使用,可列出较完整信息
u:有效使用者(effective user) 相关的process
2.1观察系统所有程序:ps http://blog.csdn.net/destiny_strive/article/details/aux
USER:该process的使用者
PID:该process的程序标识符
%CPU:该process使用掉的CPU 资源百分比
%MEM:该process所占用的物理内存百分比
VSZ:该process使用掉的虚拟内存量(Kbytes)
RSS:该process占用的物理的内存量(Kbytes)
TTY:该process是在那个终端机上面运作,若与终端机无关则显示?, 另外, tty1-tty6 是本机上面的登入者程序,若为pts/0 等等的,则表示为由网络连接进主机的程序
STAT:该进程目前的状态,状态显示与ps-l 的S 旗标相同(R/S/D/T/Z)
START:该process被触发启动的时间
TIME:该process实际使用CPU 运作的时间
COMMAND:该程序的实际命令
ps -lA 也是能够观察所有系统的数据
2.2查看部分进程
ps http://blog.csdn.net/destiny_strive/article/details/aux | grep bhttp://blog.csdn.net/destiny_strive/article/details/ash
2.3启动httpd服务
service httpd sthttp://blog.csdn.net/destiny_strive/article/details/art
root用户启动httpd服务之后,下放给8个http://blog.csdn.net/destiny_strive/article/details/aphttp://blog.csdn.net/destiny_strive/article/details/ache伪用户:
2.4进程树(可以查看父进程与子进程)
1.ps http://blog.csdn.net/destiny_strive/article/details/axjf
2.pstree
pstree命令是用于查看进程树之间的关系,谁进程是父进程,谁是子进程,一目了然。
-A: 各进程树之间的连接以ASCII码字符来连接
-U:各进程树之间的连接以utf8字符来连接,某些终端可能会有错误
-p:同时列出每个进程的PID
-u: 同时列出每个进程的所属账号名称
pstree -Aup:
查看前面若干个进程:ps http://blog.csdn.net/destiny_strive/article/details/aux | hehttp://blog.csdn.net/destiny_strive/article/details/ad -4
查看最后几行的进程:ps http://blog.csdn.net/destiny_strive/article/details/aux | thttp://blog.csdn.net/destiny_strive/article/details/ail -2
二、查看进程
1.Linux进程状态
- R (TASK_RUNNING),指正在被CPU运行或者就绪的状态(在run_queue队列里的状态)
- S (TASK_INTERRUPTIBLE),可中断的睡眠状态;处于等待状态中的进程,一旦被该进程等待的资源被释放,那么该进程就会进入运行状态
- D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态,该状态的进程只能用whttp://blog.csdn.net/destiny_strive/article/details/ake_up()函数唤醒。
- T (TASK_STOPPED or TASK_TRACED),当进程收到信号SIGSTOP、SIGTSTP、SIGTTIN或SIGTTOU时就会进入暂停状态。可向其发送SIGCONT信号让进程转换到可运行状态。
- Z (TASK_DEAD -EXIT_ZOMBIE),僵尸进程:当进程已经终止运行,但是父进程还没有询问其状态的情况。不可被kill,即不响应任务信号,无法用SIGKILL杀死。
2.观察进程变化命令:top
参数选项
-d:后面可以接秒数,就是整个程序画面更新的秒数;默认5秒。
-b:以批次方式执行top,还有更多参数可以使用,通常会搭配数据流重导向来将批次的结果输出成为档案。
-n:与-b 搭配,作用是需要进行几次top的输出结果。
-p :指定某些个PID 来进行观察监测。
1.top -d 5
top -b -n 2:输出了两段
、
三、杀死进程:kill命令
作用:kill发送信号,并不只是杀进程
选项与参数
-l :这个是L的小写,列出目前kill 能够使用的信号(signhttp://blog.csdn.net/destiny_strive/article/details/al)有哪些? signhttp://blog.csdn.net/destiny_strive/article/details/al :向进程发送的信号,指示其进行不同操作。用mhttp://blog.csdn.net/destiny_strive/article/details/an 7 signhttp://blog.csdn.net/destiny_strive/article/details/al 可知。
-15:以正常的程序方式终止一个进程!!!
-9:立刻强制终止一个进程!!!
-2:代表由键盘输入[ctrl]-c 同样的动作
-1:对于sshd这样的守护进程,重新读取一次参数的配置文件(类似relohttp://blog.csdn.net/destiny_strive/article/details/ad),如果进程为非守护进程,默认为终止进程
操作:
kill -l
发布 pstree -http://blog.csdn.net/destiny_strive/article/details/aup | grep sshd:
用参数 -1 来杀1773进程:
kill -1 1773
这里发现没有杀死sshd进程,又重新加载,但是pid变了,从1773变成了2209。
下面用参数-9来杀死这个守护进程sshd:
启动httpd进程并查看其进程树:
父进程被kill掉,它的子进程是否就一起被kill掉?
可以发现kill了父进程后,其下的子进程并没有被kill
但是如果任务是杀死所有用户的httpd进程,那么就需要多次发布kill命令,显得非常繁琐
Linux提供了一个很好的命令:killhttp://blog.csdn.net/destiny_strive/article/details/all
利用killhttp://blog.csdn.net/destiny_strive/article/details/all命令杀死所有用户的httpd进程:直接把父进程连带的子进程也杀死了。
四、系统资源监控
1.free命令
可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
[code]-b:以Byte为单位显示内存使用情况; -k:以KB为单位显示内存使用情况; -m:以MB为单位显示内存使用情况; -o:不显示缓冲区调节列; -s<间隔秒数>:持续观察内存使用状况; -t:显示内存总和列; -V:显示版本信息。
free -m -t:
第一行菜单列的意思:
[code]tothttp://blog.csdn.net/destiny_strive/article/details/al:内存总数; used:已经使用的内存数; free:空闲的内存数; shhttp://blog.csdn.net/destiny_strive/article/details/ared:当前已经废弃不用; buffers Buffer:缓存内存数; chttp://blog.csdn.net/destiny_strive/article/details/ached Phttp://blog.csdn.net/destiny_strive/article/details/age:缓存内存数。
关系:tothttp://blog.csdn.net/destiny_strive/article/details/al = used + free
2.unhttp://blog.csdn.net/destiny_strive/article/details/ame命令
用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)
选项:
[code]-http://blog.csdn.net/destiny_strive/article/details/a或--http://blog.csdn.net/destiny_strive/article/details/all:显示全部的信息; -m或--mhttp://blog.csdn.net/destiny_strive/article/details/achine:显示电脑类型; -n或-nodenhttp://blog.csdn.net/destiny_strive/article/details/ame:显示在网络上的主机名称; -r或--relehttp://blog.csdn.net/destiny_strive/article/details/ase:显示操作系统的发行编号; -s或--sysnhttp://blog.csdn.net/destiny_strive/article/details/ame:显示操作系统名称; -v:显示操作系统的版本; -p或--processor:输出处理器类型或"unknown"; -i或--hhttp://blog.csdn.net/destiny_strive/article/details/ardwhttp://blog.csdn.net/destiny_strive/article/details/are-plhttp://blog.csdn.net/destiny_strive/article/details/atform:输出硬件平台或"unknown"; -o或--operhttp://blog.csdn.net/destiny_strive/article/details/ating-system:输出操作系统名称; --help:显示帮助; --version:显示版本信息。
3.uptime命令
能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
4.netsthttp://blog.csdn.net/destiny_strive/article/details/at命令
用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
列出所有端口 (包括监听和未监听的)
[code]netsthttp://blog.csdn.net/destiny_strive/article/details/at -http://blog.csdn.net/destiny_strive/article/details/a #列出所有端口 netsthttp://blog.csdn.net/destiny_strive/article/details/at -http://blog.csdn.net/destiny_strive/article/details/at #列出所有tcp端口 netsthttp://blog.csdn.net/destiny_strive/article/details/at -http://blog.csdn.net/destiny_strive/article/details/au #列出所有udp端口
列出所有处于监听状态的 Sockets
[code]netsthttp://blog.csdn.net/destiny_strive/article/details/at -l #只显示监听端口 netsthttp://blog.csdn.net/destiny_strive/article/details/at -lt #只列出所有监听 tcp 端口 netsthttp://blog.csdn.net/destiny_strive/article/details/at -lu #只列出所有监听 udp 端口 netsthttp://blog.csdn.net/destiny_strive/article/details/at -lx #只列出所有监听 UNIX 端口
显示每个协议的统计信息
[code]netsthttp://blog.csdn.net/destiny_strive/article/details/at -s 显示所有端口的统计信息 netsthttp://blog.csdn.net/destiny_strive/article/details/at -st 显示TCP端口的统计信息 netsthttp://blog.csdn.net/destiny_strive/article/details/at -su 显示UDP端口的统计信息
5.vmsthttp://blog.csdn.net/destiny_strive/article/details/at命令
的含义为显示虚拟内存状态(“Viryuhttp://blog.csdn.net/destiny_strive/article/details/al Memor Sthttp://blog.csdn.net/destiny_strive/article/details/atics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。
选项:
[code]-http://blog.csdn.net/destiny_strive/article/details/a:显示活动内页; -f:显示启动后创建的进程总数; -m:显示slhttp://blog.csdn.net/destiny_strive/article/details/ab信息; -n:头信息仅显示一次; -s:以表格方式显示事件计数器和内存状态; -d:报告磁盘状态; -p:显示指定的硬盘分区状态; -S:输出信息的单位。
参数:
- 事件间隔:状态信息刷新的时间间隔;
- 次数:显示报告的次数。
统计目前主机CPU状态,每秒一次,共计四次:
6.防火墙的启动、状态查看、关闭
# service ipthttp://blog.csdn.net/destiny_strive/article/details/ables sthttp://blog.csdn.net/destiny_strive/article/details/art //启动
# service ipthttp://blog.csdn.net/destiny_strive/article/details/ables sthttp://blog.csdn.net/destiny_strive/article/details/atus //查看状态
# service ipthttp://blog.csdn.net/destiny_strive/article/details/ables stop //停止
# service ipthttp://blog.csdn.net/destiny_strive/article/details/ables resthttp://blog.csdn.net/destiny_strive/article/details/art //重启
以上状态的修改,在服务器重启前生效。
永久关闭:
chkconfig ipthttp://blog.csdn.net/destiny_strive/article/details/ables off
永久开启:
chkconfig ipthttp://blog.csdn.net/destiny_strive/article/details/ables on
在服务器重启后生效,防火墙在服务器重启前的状态并没有发生改变。
网络服务关键字:network
五、任务管理
jobs命令用于显示Linux中的任务列表及任务状态,包括后台运行的任务。该命令可以显示任务号及其对应的进程号。其中,任务号是以普通用户的角度进行的,而进程号则是从系统管理员的角度来看的。一个任务可以对应于一个或者多个进程号。
在Linux系统中执行某些操作时候,有时需要将当前任务暂停调至后台,或有时须将后台暂停的任务重启开启并调至前台,这一序列的操作将会使用到 jobs、bg、和fg 三个命令以及两个快捷键来完成。
选项:
[code]-l:显示进程号; -p:仅任务对应的显示进程号; -n:显示任务状态的变化; -r:仅输出运行状态(running)的任务; -s:仅输出停止状态(stoped)的任务。
1、前台进程
可以控制与执行命令的bhttp://blog.csdn.net/destiny_strive/article/details/ash环境称为前台进程。
2、后台进程
在操作系统中自行运行,你无法使用[ctrl]+c终止,可使用bg/fg命令操作的任务。
后台执行的任务不能接收终端(terminhttp://blog.csdn.net/destiny_strive/article/details/al/shell)的输入。
Ctrl+Z 切换到后台 或者 thttp://blog.csdn.net/destiny_strive/article/details/ail -F insthttp://blog.csdn.net/destiny_strive/article/details/all.log &http://blog.csdn.net/destiny_strive/article/details/amp;
在当前bhttp://blog.csdn.net/destiny_strive/article/details/ash执行多个任务:
观察后台任务:
停止:
六、华为老师的思维导图
阅读更多
- Linux 系统管理 (进程管理、工作管理、系统资源查看、系统定时任务)
- [Linux]系统管理: 进程管理(ps/top/pstree/kill/pkill), 工作管理, 系统资源查看, 系统定时任务
- Linux学习笔记-----进程管理-查看系统健康状态
- Linux学习笔记----Linux 系统管理----系统定时任务
- [学习笔记]Linux系统资源查看
- 学习笔记--Linux系统资源查看
- Linux学习笔记:进程管理和任务计划
- Linux学习笔记之计划任务、进程管理、磁盘管理
- linux 命令系列之 进程管理,系统资源查看(72)
- Linux初窥:系统管理之(进程管理、定时任务、系统监控)
- linux 下查看系统资源和负载,以及性能监控(学习使用)
- Linux学习笔记:Linux系统的进程调度(任务调度)
- Linux 第六周学习笔记 (2),特殊权限列表,at延时任务及定时机制,系统临时文件的管理
- 学习笔记--Linux系统进程管理
- Linux 学习笔记_8_进程管理_3_计划任务
- linux学习笔记----进程管理----杀死进程and 把进程放入后台
- linux学习笔记——进程的查看和管理、systemctl命令
- Linux基础之系统资源监控与任务管理
- Linux全攻略--系统性能、进程监控和日志管理
- linux下查看系统资源和负载,以及性能监控