1-10 RHLE7 系统进程管理

1.1-Linux进程管理

程序、进程、线程

程序:一组指令的集合    QQ

进程:程序的执行就是进程。也可以把进程看成一个独立的程序,
在内存中有其对应的代码空间和数据空间,一个进程所拥有的数据和代码只属于自己。
进程是资源分配的基本单位,也是调度运行的基本单位。

线程:线程被人们认为是轻量级的进程,它是进程中单独运行的程序。
换句话说,就是一个进程可以包含多个线程,并且至少有一个主线程,
同时同一进程的线程共享该进程的代码和数据。

程序和进程的区别
1、程序是静态的,它只是一组指令的集合,不具有任何的运行意义。
     而进程是程序运行的动态过程.
2、进程和程序并不是一一对应的关系,
     相同的程序运行在不同的数据集上就是不同的进程。
3、进程还具有并发性和交往性,而程序却是封闭的。

进程和线程的区别
1、一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有。
2、线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口。
     它必须组成进程才能被执行。

1.1-2进程的属性:
进程ID(PID):是唯一的数值,用来区分进程;

父进程的ID(PPID);

启动进程的用户ID(UID)和所归属的组(GID);

进程状态:状态分为运行R、休眠S、僵尸Z;

进程执行的优先级;数值越小,优先级越高,取值在-20~19

进程所连接的终端名;

进程资源占用:比如占用资源大小(内存、CPU占用量);

对于Linux进程的管理,是通过进程管理工具实现的,比如ps、kill、工具
================================================

1.2 ps top pgrep pstree netstat工具的使用方式

1.2.1 ps命令:监视进程工具(静态的static)
ps - report a snapshot of the current processes.

ps命令有三种显示选项:
分别是
UNIX 选项  需要使用一个破折号-,可以组合使用
BSD选项    可以不使用破折号-,可以组合   ps aux / ps -aux 
            会显示进程的状态,和命令
GNU长选项  需要两个破折号--

ps是查看进程用的最普遍的命令,(注ps不是photoshop)
常用选项:
-a 显示所有用户进程
-u 显示用户名和启动时间
-x 显示没有控制终端的进程
-e 显示所有进程(包括没有终端的进程)
-l  长格式输出显示的进程
-w 加宽显示,可使用多个w
显示所有进程命令:
ps -aux     #是用BSD的格式来显示进程
ps -el         #是用标准的格式显示进程

这两条命令,可使用管道,配合 more ,less 或 grep使用
[[email protected] ~]# ps -aux | grep sshd
[[email protected] ~]# ps -aux | grep httpd

查看隶属于自己进程详细信息
[[email protected] ~]# ps -l
[[email protected] ~]# ps -u

ps  -aux 输出的解释:

USER  启动该进程的用户
PID    进程的ID,数值唯一,可通过进程号对其进行各种操作
%CPU  占用CPU的时间比
%MEM  占用内存的百分比
VSZ      占用虚拟内存大小
RSS       缓存大小?!
NI        进程的优先级
TTY        进程连接的终端名
STAT     进程的状态
START   进程的启动时间
TIME     进程占用CPU的总时间
COMMAND  进程的命令名
================================================

1.2.2 top命令:动态显示进程信息
top - display Linux processes
前五行数据解释:

任务队列信息-->第一行:
top - 19:36:08 up  2:37,  2 users,  load average: 0.00, 0.01, 0.05
top--> 命令名
19:36:08-->当前时间19:36:08
up 2:37-->系统启动时间,  
2 users-->有两个登录用户,  
load average: 0.00, 0.01, 0.05-->系统负载,
                                  即任务队列的平均长度。
                                  三个数值分别为1分钟、5分钟、15分钟前到现在的平均值

进程和CPU的信息-->第二行、第三行:
Tasks: 519 total,   1 running, 518 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.8 us,  0.7 sy,  0.0 ni, 98.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
Tasks: 519 total-->进程总数519个
1 running, -->正在运行的进程数1个
518 sleeping,   -->睡眠的进程数
0 stopped,   -->停止的进程数
0 zombie-->僵尸进程数
%Cpu(s):  0.8 us,  -->系统用户进程使用CPU百分比
0.7 sy,  -->内核中的进程使用CPU百分比
0.0 ni, -->用户进程空间内改变过优先级的进程占用CPU百分比
98.5 id,  -->空闲CPU百分比
0.0 wa,  0.0 hi,  0.0 si,  0.0 st

内存和交换分区的信息-->第四行第五行
KiB Mem :  2033556 total,   594904 free,   623056 used,   815596 buff/cache
KiB Swap:  4194300 total,  4194300 free,        0 used.  1158976 avail Mem
KiB Mem :  2033556 total,-->物理内存总量
594904 free,-->空闲的内存总量
623056 used,-->使用的物理内存总量
815596 buff/cache-->用作内核缓存的内存辆。和free -k 一个意思
KiB Swap:  4194300 total,-->交换区总量
4194300 free,-->空闲的交换区总量
0 used.-->使用的交换区总量
1158976 avail Mem-->总的可利用内存是多少

显示的进程信息解析
列名        含义
PID        进程id
USER        进程所有者的用户名
NI        进程优先级。 nice值。负值表示高优先级,正值表示低优先级
RES        实际使用内存大小。
S        进程状态。
            D=不可中断的睡眠状态
            R=运行
            S=睡眠
            T=跟踪/停止
            Z=僵尸进程
%CPU        上次更新到现在的CPU时间占用百分比
%MEM        进程使用的物理内存百分比
TIME+        进程使用的CPU时间总计,单位1/100秒
COMMAND        命令名/命令行

快捷键操作:
top快捷键
默认3s刷新一次
空格 :立即刷新。
q退出
M按内存排序
P按CPU排序

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

1.2.3 使用pgrep管理工具
作用:查找服务进程号
语法格式:pgrep  [服务名称]
[[email protected] ~]# pgrep httpd
[[email protected] ~]# pgrep sshd

[[email protected] ~]# pgrep --help

Usage:
pgrep [options] <pattern>

Options:
-d, --delimiter <string>  specify output delimiter
-l, --list-name          list PID and process name
-a, --list-full          list PID and full command line
-v, --inverse            negates the matching
-w, --lightweight        list all TID
-c, --count              count of matching processes
-f, --full                use full process name to match
-g, --pgroup <PGID,...>  match listed process group IDs
-G, --group <GID,...>    match real group IDs
-n, --newest              select most recently started
-o, --oldest              select least recently started
-P, --parent <PPID,...>  match only child processes of the given parent
-s, --session <SID,...>  match session IDs
-t, --terminal <tty,...>  match by controlling terminal
-u, --euid <ID,...>      match by effective IDs
-U, --uid <ID,...>        match by real IDs
-x, --exact              match exactly with the command name
-F, --pidfile <file>      read PIDs from file
-L, --logpidfile          fail if PID file is not locked
--ns <PID>                match the processes that belong to the same
                          namespace as <pid>
--nslist <ns,...>        list which namespaces will be considered for
                          the --ns option.
                          Available namespaces: ipc, mnt, net, pid, user, uts

-h, --help    display this help and exit
-V, --version  output version information and exit

For more details see pgrep(1).

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

1.2.4 pstree工具使用
pstree命令以树状图显示进程间的关系(display a tree of processes)。
格式:pstree
以树状图显示进程,只显示进程的名字,且相同进程合并显示。
格式:pstree -p
以树状图显示进程,还显示进程PID。

[[email protected] ~]# pstree --help
pstree: unrecognized option ‘--help‘
Usage: pstree [ -a ] [ -c ] [ -h | -H PID ] [ -l ] [ -n ] [ -p ] [ -g ] [ -u ]
              [ -A | -G | -U ] [ PID | USER ]
      pstree -V
Display a tree of processes.

  -a, --arguments    show command line arguments
  -A, --ascii        use ASCII line drawing characters
  -c, --compact      don‘t compact identical subtrees
  -h, --highlight-all highlight current process and its ancestors
  -H PID,
  --highlight-pid=PID highlight this process and its ancestors
  -g, --show-pgids    show process group ids; implies -c
  -G, --vt100        use VT100 line drawing characters
  -l, --long          don‘t truncate long lines
  -n, --numeric-sort  sort output by PID
  -N type,
  --ns-sort=type      sort by namespace type (ipc, mnt, net, pid, user, uts)
  -p, --show-pids    show PIDs; implies -c
  -s, --show-parents  show parents of the selected process
  -S, --ns-changes    show namespace transitions
  -u, --uid-changes  show uid transitions
  -U, --unicode      use UTF-8 (Unicode) line drawing characters
  -V, --version      display version information
  -Z,
  --security-context  show SELinux security contexts
  PID    start at this PID; default is 1 (init)
  USER  show only trees rooted at processes of this user

pstree

pstree -p

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

1.2.5 netstat工具的使用

作用:打印网络连接、路由表、接口统计等
Print network connections, routing tables, interface statistics, masquerade connections, and mul‐ticast memberships
参数:常用:
-a或–all 显示所有连接中的接口。
-c或–continuous 持续列出网络状态。
-C或–cache 显示路由器配置的快取信息。
-e或–extend 显示网络其他相关信息。
-F或–fib 显示FIB。
        -g或–groups 显示多重广播功能群组组员名单。
-h或–help 在线帮助。
-i或–interfaces 显示网络界面信息表单。
-l或–listening 显示监控中的服务器的接口。
-M或–masquerade 显示伪装的网络连线。
-n或–numeric 直接使用IP地址,而不通过域名服务器。
-N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
-o或–timers 显示计时器。
-p或–programs 显示正在使用接口的程序识别码和程序名称。
-r或–route 显示Routing Table。
-s或–statistice 显示网络工作信息统计表。
-t或–tcp 显示TCP传输协议的连接状况。
-u或–udp 显示UDP传输协议的连接状况。
-v或–verbose 显示指令执行过程。
-V或–version 显示版本信息。
-w或–raw 显示RAW传输协议的连线状况。
-x或–unix 此参数的效果和指定”-A unix”参数相同。
–ip或–inet 此参数的效果和指定”-A inet”参数相同。

显示所有tcp连接
[[email protected] ~]# netstat -anlpt

显示所有UDP连接
[[email protected] ~]# netstat -anlpu

查看某个服务的端口:
[[email protected] ~]#nestat -anlpt | grep httpd

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

1-3. 虚拟文件系统  /proc 、 /sys

Linux一切皆文件,设备(文件)可以通过读写来操作;

/proc是内存中有关系统进程的信息;
/sys是有关系统内核以及驱动的信息;

cat /proc/cpuinfo
//查看当前CPU信息

#开启内核转发功能
[[email protected] ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
[[email protected] ~]# cat /proc/sys/net/ipv4/ip_forward
1
[[email protected] ~]#

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

1.4- LINUX后台进程与前台进程

LINUX后台进程与前台进程的区别
Linux后台进程:
也叫守护进程(Daemon),是运行在后台的一种特殊进程。
守护的意思就是不受终端控制。Linux的大多数服务器就是用守护进程实现的。
比如,Web服务器httpd等。
Linux前台进程:
用户使用的有控制终端的进程.

进程的前台与后台运行
跟系统任务相关的几个命令:fg、bg、jobs、&、ctrl+z
         & :用在一个命令的最后,可以把这个命令放到后台执行.
 ctrl + z: 将一个正在前台执行的命令放到后台,并且暂停.
jobs:查看当前有多少在后台运行的进程.
fg: 将后台中的命令调至前台继续运行  
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
bg :将一个在后台暂停的命令,变成继续执行
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

实战:恢复被挂起的进程
[[email protected] ~]# vim a.txt

[1]+  Stopped                vim a.txt
[[email protected] ~]# jobs
[1]+  Stopped                vim a.txt
[[email protected] ~]# fg
vim a.txt
[[email protected] ~]#

kill进程的终止

控制(关闭)进程:
kill用法 关闭进程:kill  [进程号]
通过信号的方式来控制进程
[[email protected] ~]#  kill -l  #查看可用的信号

杀死进程:
[[email protected] ~]# kill -9 5873
[[email protected] ~]# kill -s 9 5873

杀死全部进程:killall
[[email protected] ~]# killall httpd

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

1.5-进程的优先级管理
进程的优先级的定义

优先级取值范围为(-20,19)
越小优先级越高, 默认优先级是0

nice指定程序的运行优先级

使用top命令查看优先级

作用:指定程序的运行优先级

格式:nice -n command
实战:
nice -n 5 vim a.txt
输入内容
ctrl+z 挂起(执行很快,挂起能够看到pid)
ps -aux | grep vim
top -p pid查看

将vim进程挂起,并查看其PID:

使用top -p PID 查看VIM优先级

使用renice n -pid PID命令,设置进程优先级,并查看

使用nice命令,直接设置即将运行的命令的优先级,并查看

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

1.6-文件控制台的窗口管理

screen 实战后台实时执行命令
1、安装screen软件包
[[email protected] ~]#rpm -ivh /mnt/Packages/screen-4.1.0-0.21.20120314git3c2946.el7.x86_64.rpm
或者
[[email protected] ~]# yum -y install screen

[[email protected] ~]# which screen
/usr/bin/which: no screen in (/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin)
[[email protected] ~]# rpm -ivh /mnt/Packages/screen-4.1.0-0.21.20120314git3c2946.el7.x86_64.rpm
warning: /mnt/Packages/screen-4.1.0-0.21.20120314git3c2946.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
  1:screen-4.1.0-0.21.20120314git3c29################################# [100%]
[[email protected] ~]# which screen
/usr/bin/screen
[[email protected] ~]#

Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。
直接在命令行键入screen命令
screen

Screen将创建一个执行shell的全屏窗口。你可以执行任意shell程序,就像在ssh窗口中那样。

在该窗口中键入exit退出该窗口,
Screen命令后跟你要执行的程序。
screen vim xuegod.sh

Screen创建一个执行vim xuegod.sh的单窗口会话,退出vi将退出该窗口/会话。

进入screen
vim 执行操作
以上两种方式都创建新的screen会话。
我们还可以在一个已有screen会话中创建新的窗口。在当前screen窗口中Ctrl键+a键,之后再按下c键,screen 在该会话内生成一个新的窗口.

screen还有更高级的功能。你可以不中断screen窗口中程序的运行而暂时断开(detach)screen会话,并在随后时间重新连接(attach)该会话,重新控制各窗口中运行的程序。
例如,我们在做某个大型的操作但是突然之间断开:
(常用在远程连接某服务器时,我们可以使用screen命令,执行需要等待时间很长的操作,若中间远程连接断开,不影响这个操作的执行)

实战:
screen  进入
执行updatedb
模拟中断
模拟假设突然会话断开
那么在screen窗口键入Ctrl+a+d ,Screen会给出detached提示:
(只要不输入exit,而造成的退出,都可以重连)
暂时中断会话

怎样找到该screen会话,继续操作呢?
screen -ls
查看id

重新连接会话:
screen -r id

时间: 2024-10-14 17:06:29

1-10 RHLE7 系统进程管理的相关文章

Linux下的文件压缩归档与系统进程管理

Linux下的文件压缩归档与系统进程管理   一:实验环境 1):在虚拟机下配置好linux系统 2):了解文件压缩归档的含义 二:实验目标 1):理解并会用文件的压缩归档 2):熟练掌握文件压缩归档的命令 3):理解各种压缩形式的使用环境 4):理解个文件的压缩区别 三:实验步骤 一:压缩的常用形式及命令 1):常用形式 grub.tar grub.tar.bz2 grub.tar.gz grub.tar.zip 2):压缩命令分析 [[email protected] test]#tar -

10.23 linux任务计划cron10.24chkconfig工具10.25 systemd管理服务10.26 unit介绍 10.27 target介绍

- 10.23 linux任务计划cron - 10.24 chkconfig工具 - 10.25 systemd管理服务 - 10.26 unit介绍 - 10.27 target介绍 - 扩展 1. anacron http://blog.csdn.net/strikers1982/article/details/4787226  2. xinetd服(默认机器没有安装这个服务,需要yum install xinetd安装) http://blog.sina.com.cn/s/blog_46

Linux系统进程管理工具

对于Linxu系统运维工程师来说好的系统进程管理工具,就像一把利器,无坚不摧,可以使用这些工具发现造成性能问题可能原因,提升团队的工作效率,本篇知识提及一些简单常用系统管理工具包括了pstree.ps.pgrep.top.htop.pidof.vmstat.glances.dstat的简单实用例子及常用选项,希望能帮助一些热爱Linux的朋友们. pstree:用来显示进程数的 pstree命令的用法格式 [[email protected] ~]# pstree init─┬─NetworkM

1.1.2系统进程管理方法

#!/use/bin/python # -*- coution: utf-8 -*- #psutil 是一个跨平台库 能轻松实现获取系统运行的进程和利用率 import psutil #1.1.2 系统进程管理方法 ''' 获取系统进程信息,得知应用程序的运行状态 *进程启动时间 *cpu亲和度 *内存使用率 *IO信息 *socket连接 *线程数 ''' #(1)进程信息 #列出所有进程PID print(psutil.pids()) #实例化一个process对象,参数为进程PID p =

Skype For Business 2015实战系列10:安装管理工具

Skype For Business 2015实战系列10:安装管理工具 今天要给大家介绍的是Skype for Business Server 2015安装前的准备工作-安装管理工具.Skype for Business Server 2015 的安装介质提供了灵活的体验.用户第一次运行Setup时,唯一安装的工具是 Skype for Business Server 部署向导和 Skype for Business Server 命令行管理程序.通过使用这两个工具(即核心组件),我们可以继续

linux系统进程管理之htop工具的使用

在linux上关于系统进程管理方面的程序有很多例如:ps.pstree.pidof.pgrep等众多工具,但是他们都只是捕获当前管理员输入命令并敲回车的前一秒的进程状态信息并且还不会高亮显示,就这样htop出现了. htop为top的增强版,增加了高亮显示进程信息.虽然top可以动态获取并将进程信息返回给终端但是由于所有进程状态的颜色都是一模一样的不便观察,推荐使用htop.glances.dstat等管理工具,如果自己可以写一个专用的那就另当别论. 接下来介绍一下htop工具的使用(glanc

【翻译】《深入解析windows操作系统第6版下册》第10章:内存管理

[翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第一部分) [翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第二部分) [翻译]<深入解析windows操作系统第6版下册>第10章:内存管理(第三部分) . . .

系统进程管理

process和program 进程与程序 程序:通常为二进制程序仿制在存储媒介中,以物理文件的形式存在. 进程:程序被触发后,执行者的权限与属性.程序的程序代码和所需数据等会被加载到内存中,操作系统并给予这个内存内的单元一个标识符PID,也就是说,进程就是一个正在运行的程序. job control 工作管理 前台foreground fg 后台 bg 暂停 ctrl+z 直接将命令丢到后台执行的 & 比如解压一个相当大的压缩包: tar -zpcvf /tmp/etc.tar.gz /etc

Internet Explorer 10 administration IE10管理

http://4sysops.com/archives/internet-explorer-10-administration-part-1-overview/ http://4sysops.com/archives/internet-explorer-10-administration-part-2-group-policy/ http://4sysops.com/archives/internet-explorer-10-administration-part-3-group-policy-