您的位置:首页 > 运维架构 > Linux

Linux的进程管理、查看、杀死进程、任务管理、系统资源监控(课堂学习笔记)

2018-09-19 17:57 1051 查看
版权声明:原创文章,转载请说明出处 https://blog.csdn.net/Destiny_strive/http://blog.csdn.net/destiny_strive/article/details/article/dethttp://blog.csdn.net/destiny_strive/article/details/ails/82773363

 

一、进程管理

1.查看Linux启动的第一个进程

2.查看进程状态

2.1观察系统所有程序:ps http://blog.csdn.net/destiny_strive/article/details/aux

2.2查看部分进程

2.3启动httpd服务

2.4进程树(可以查看父进程与子进程)

二、查看进程

1.Linux进程状态

2.观察进程变化命令:top

三、杀死进程:kill命令

四、系统资源监控

1.free命令

2.unhttp://blog.csdn.net/destiny_strive/article/details/ame命令

3.uptime命令

4.netsthttp://blog.csdn.net/destiny_strive/article/details/at命令

5.vmsthttp://blog.csdn.net/destiny_strive/article/details/at命令

6.防火墙的启动、状态查看、关闭

五、任务管理

六、华为老师的思维导图

一、进程管理

程序与进程之间的区别与联系?

进程是由进程控制块、程序段、数据段三部分组成。一个进程可以包含若干线程(Threhttp://blog.csdn.net/destiny_strive/article/details/ad)

进程为应用程序的运行实例,是应用程序的一次动态执行。

进程是程序在计算机上的一次执行活动。运行一个程序,就是启动了一个进程。

程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就是所有由你启动的进程。进程是操作系统进行资源分配的单位。
在Windows下,进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。

1.查看Linux启动的第一个进程

pidof init

tty、pty与pts的区别?

这个问题我参照的如下博客:

https://www.geek-shhttp://blog.csdn.net/destiny_strive/article/details/are.com/dethttp://blog.csdn.net/destiny_strive/article/details/ail/2481798263.html

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端口的统计信息

更多操作查看:https://www.geek-shhttp://blog.csdn.net/destiny_strive/article/details/are.com/dethttp://blog.csdn.net/destiny_strive/article/details/ail/2750670007.html

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执行多个任务:

观察后台任务:

停止:

六、华为老师的思维导图

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: