【学神-RHEL7】1-10-RHEL7进程管理

本节所讲内容:

Linux进程管理

screen 实战后台实时执行命令备份命令

 

进程管理:

pstree

ps

top

nice 修改进程优先级

kill

前台后台进程切换

free  查看内存

screen

 

程序与进程:

程序是静态的(文件),进程是动态的(运行的程序)。

 

进程和线程:

一个程序至少有一个进程,一个进程至少有一个线程.
进程之间内存是独立

线程之前内存共享   ,高并发好一些 。   安全性差一些。 

 

查看进程树

显示进程号 -p

[[email protected] ~]# pstree -p  | more

systemd(1)-+-ModemManager(1013)-+-{ModemManager}(1046)

           |                    `-{ModemManager}(1072)

           |-NetworkManager(1002)-+-{NetworkManager}(1074)

           |                      |-{NetworkManager}(1076)

 

 

显示目录树形结构

[[email protected] ~]# yum -y install tree

[[email protected] ~]# tree /boot/ | more

/boot/

├── config-3.10.0-229.el7.x86_64

├── grub2

│   ├── device.map

│   ├── fonts

│   │   └── unicode.pf2

│   ├── grub.cfg

 

 

列出目前所有的正在内存当中的进程

ps  -aux

 

[[email protected] ~]# ps -aux

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root          1  0.1  0.1  57172  4276 ?        Ss   20:21   0:02 /usr/lib/systemd/systemd

root          2  0.0  0.0      0     0 ?        S    20:21   0:00 [kthreadd]

root          3  0.0  0.0      0     0 ?        S    20:21   0:00 [ksoftirqd/0]

root          5  0.0  0.0      0     0 ?        S<   20:21   0:00 [kworker/0:0H]

root          7  0.0  0.0      0     0 ?        S    20:21   0:00 [migration/0]

root          8  0.0  0.0      0     0 ?        S    20:21   0:00 [rcu_bh]

 

USER:运行此进程的用户名

PID :该 process 的号码。

%CPU:该 process 使用掉的 CPU 资源百分比;

%MEM:该 process 所占用的物理内存百分比;

VSZ :该 process 使用掉的虚拟内存量 (Kbytes)

RSS :该 process 占用的固定的内存量 (Kbytes)

TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。

 

STAT:该程序目前的状态,Linux进程有5种基本状态:

:(正在运行或在运行队列中等待) 

:该程序目前正在睡眠当中 ,但可被某些讯号 (signal) 唤醒。

:该程序目前暂停了

例: vim a.txt   按下: ctrl+z 

[[email protected] ~]# ps -aux | grep vim

root       2634  0.2  0.1 151396  5104 pts/0    T    20:59   0:00 vim a.txt

root       2644  0.0  0.0 112640   956 pts/0    S+   20:59   0:00 grep --color=auto vim

 

ctrl-c 是发送 SIGINT 信号,终止一个进程

ctrl-z 是发送 SIGSTOP信号,挂起一个进程

Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态

D:  不可中断状态.

高优先级的  

  N  低优先级的

  s  包含子进程

  l  多线程

  +   前台程序

 

START:该 process 被触发启动的时间;

TIME :该 process 实际使用 CPU 运作的时间。

COMMAND:该程序的实际指令

 

了解:

ps -ef

ps -aux 是用BSD的格式来显示进程。

ps -ef 是用标准的格式显示进程。

 

top  动态查看进程

统计信息区前五行是系统整体的统计信息。

1.     第一行是任务队列信息

同 uptime  命令的执行结果:

[[email protected] ~]# uptime

 21:13:25 up 52 min,  4 users,  load average: 0.06, 0.03, 0.05

 

其内容如下:


21:13:25


当前时间


up 52 min


系统运行时间,格式为时:分


4 users,


当前登录用户数


load average: 0.06, 0.03, 0.05


系统负载,即任务队列的平均长度。 三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值。

 

一般来说,每个CPU内核当前活动进程数不大于3,则系统运行表现良好!当然这里说的是每个cpu内核,也就是如果你的主机是四核cpu的话,那么只要uptime最后输出的一串字符数值小于4*3=12即表示系统负载不是很严重.

 

2. 第二、三行为进程和CPU的信息

当有多个CPU时,这些内容可能会超过两行。内容如下:


Tasks: 29 total


进程总数


1 running


正在运行的进程数


28 sleeping


睡眠的进程数


1 stopped


停止的进程数


0 zombie


僵尸进程数


Cpu(s):

0.3% us


系统用户进程使用CPU百分比。 不包括调高优先级的进程。 CPU%是由每个核的CPU占用律之和算出来的。如果你是4核CPU,核1,CPU使用率为100%,核2,CPU使用率为100%。 则会出会CPU 高于100%的现象,最终为200%


1.0% sy


内核中的进程占用CPU百分比


0.0% ni


用户进程空间内改变过优先级的进程占用CPU百分比


98.7% id


空闲CPU百分比

 

 

第四五行为内存信息。内容如下:


Mem: 191272k total


物理内存总量

 


173656k used


使用的物理内存总量


17616k free


空闲内存总量


22052k buff/cache


用作内核缓存的内存量。

和free –k 一个意思


Swap: 192772k total


交换区总量


0k used


使用的交换区总量


192772k free


空闲交换区总量


3123008 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排序

<>  翻页

 

控制(关闭)进程:

kill  给进程发送信号(停止进程)

常用信号:

1  HUP   重新加载配置文件。类似重启。

2  INT   和ctrl+c一样   一般用于通知前台进程组终止进程

9  KILL  强行中断

19 STOP  和ctrl+z一样

 

任务:百度一下常见的信号

 

例:

语法:kill -9 pid

 

[[email protected] ~]# ps -aux | grep top

root       1987  0.0  0.5 908168 22496 ?        Sl   20:24   0:00 nautilus --no-default-window --force-desktop

root      34972  0.4  0.0 130288  2164 pts/0    S+   21:49   0:00 top

[[email protected] ~]# kill -9 34972

 

killall 通过程序的名字,直接杀死所有进程

[[email protected] ~]# yum -y install httpd

[[email protected] ~]# systemctl start httpd

[[email protected] ~]# ps -aux | grep httpd

root      35037  0.0  0.1 209000  4772 ?        Ss   21:51   0:00 /usr/sbin/httpd -DFOREGROUND

apache    35038  0.0  0.0 211084  2952 ?        S    21:51   0:00 /usr/sbin/httpd -DFOREGROUND

apache    35039  0.0  0.0 211084  2952 ?        S    21:51   0:00 /usr/sbin/httpd -DFOREGROUND

apache    35040  0.0  0.0 211084  2952 ?        S    21:51   0:00 /usr/sbin/httpd -DFOREGROUND

apache    35041  0.0  0.0 211084  2952 ?        S    21:51   0:00 /usr/sbin/httpd -DFOREGROUND

apache    35042  0.0  0.0 211084  2952 ?        S    21:51   0:00 /usr/sbin/httpd -DFOREGROUND

root      35055  0.0  0.0 112640   960 pts/0    S+   21:53   0:00 grep --color=auto httpd

[[email protected] ~]# killall httpd

 

[[email protected] ~]# systemctl status httpd

httpd.service - The Apache HTTP Server

   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)

   Active: failed (Result: exit-code) since Fri 2015-12-04 21:53:27 CST; 29s ago

 

或者:

[[email protected] ~]#pkill httpd

 

扩展

vim a.txt  #出现以下情况

E325: ATTENTION

Found a swap file by the name ".a.txt.swp"

          owned by: root   dated: Fri Dec  4 20:59:24 2015

 

解决思路:

1)查看一下有没有对应的进程,有的话杀死

[[email protected] ~]# ps -axu | grep vim

[[email protected] ~]# kill -9 2702

 

2)如果还不能解决,

[[email protected] ~]# rm -rf .a.txt.swp

 

优先级控制:

nice值  -20 ~ 19  越小优先级越高 普通用户0-19

nice

作用:以什么优先级运行进程 。默认优先级是0

语法: nice  -n 优先级数字

[[email protected] ~]# nice -n -5 vim a.txt

[[email protected] ~]# ps -aux | grep vim

root      35209  0.0  0.1 151396  5124 pts/2    S<+  22:04   0:00 vim a.txt

 

[[email protected] ~]# top -p 35209

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                     

 35209 root      15  -5  151396   5124   2528 S   0.0  0.1   0:00.03 vim       

 

renice  #修改正在运行的进程的优先级

[[email protected] ~]# renice -n 5 35281

35281 (process ID) old priority 0, new priority 5

 

 

了解:

前后台进程切换:

任务:nohup后台指令如何创建

jobs  列出所有后台进程

[[email protected] ~]# vim a.txt &

[2] 35335

 

fg  后台程序改成前台

用法: fg 后期进程序列号

例:

[[email protected] ~]# fg 1

 

free 查看系统内存量

-m按照MB显示

[[email protected] ~]# free -m

              total        used        free      shared  buff/cache   available

Mem:           3939         572        2644           9         721        3047

Swap:          2047           0        2047

 

buffers  #缓存从磁盘读出的内容

cached  #缓存需要写入磁盘的内容

 

运行:

[[email protected] ~]# find /   #在另一个终端查看buffers 增加速度

[[email protected] ~]# dd if=/dev/zero of=/a.txt count=10 bs=100M #在另一个终端查看cache增加速度

 

清空缓存

[[email protected] ~]# echo 3 > /proc/sys/vm/drop_caches

[[email protected] ~]# free -m

              total        used        free      shared  buff/cache   available

Mem:           3939         519        3251           9         168        3226

Swap:          2047           0        2047

 

 

screen 实战后台实时执行命令备份命令。

 

1.      安装screen软件包

[[email protected] ~]# rpm -ivh /mnt/Packages/screen-4.1.0-0.19.20120314git3c2946.el7.x86_64.rpm

[[email protected] ~]# yum -y install screen

2.  直接在命令行键入screen命令

   [[email protected] ~]# screen

3.  [[email protected] ~]# vim 1.sh

  命令模式按ctrl+a+d,出现[detached] 即可,再关闭pst

4.  重新打开一个pst窗口执行

[[email protected] ~]# screen -ls

There is a screen on:

        3107pxs-0.xuegod63     (Detached)

1 Socket in /var/run/screen/S-root.

 

5.  [[email protected] ~]# screen -r 2330  #就可以继续进行原来的进程

 

6.  如果你想终止screen则直接把你当前使用的终端关掉就可以了,或者exit

 

学习过程中如果问题,请留言。更多内容请加:
学神IT-linux讲师-RM老师QQ:2805537762
学神IT-戚老师QQ:3341251313
学神IT-旭斌QQ:372469347
学神IT教育RHEL7交流群:468845589

时间: 2024-10-06 11:58:34

【学神-RHEL7】1-10-RHEL7进程管理的相关文章

10、进程管理,case和函数 学习笔记

ps:显示系统当前进程状态的命令 ps a 所有与终端相关的进程 ps x 所有与终端无关的进程 ps u 以用户为中心显示进程相关信息 VSZ: 虚拟内存集,Virutal menmory Size RSS: 常驻内存集 STAT: R:运行或可运行 S:可中断睡眠 D:不可中断睡眠 T:停止 Z:僵死 s:session leader 有子进程 +:前台进程 l:多线程进程 N:低优先级进程 <: 高优先级进程 START: 启动时间 TIME: 累计占用的内存时间 COMMAND []表示

linux进程管理及计划任务

什么是进程? 在Linux系统当中:触法任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置. 进程与程序: 程序(program):通常为二进制程序放置在存储媒介中,以物理文件的形式存在. 进程(process):程序被触发后,执行者的权限与属性.程序的程序代码与所需数据等都会被加载到内存中,操作系统并给予这个内存内的单元一个标识符(PID),可以说,进程就是一个正在运行中的程序. 进程I

Linux进程管理.md

目录 Linux进程管理 1.进程基本概述 1.1.进程的组成部分 1.2.进程的环境 1.3.进程的产生 1.4.进程的分类 2.进程状态 2.1.Linux进程状态 3.2.进程优先级 3.3.相对优先级 3.4.nice级别与权限 3.5.进程优先级调整 4.进程管理命令 4.1.ps 4.2.pstree 4.3.pgrep 4.4.pidof 4.5.vmstat 5.控制作业 5.1.作业与会话 5.2.作业分类 5.3.在后台运行作业 6.进程间通信 7.使用信号控制进程 8.监控

RH124-08 系统服务和守护进程管理

第八章 系统服务和守护进程管理 8.1 了解自启动系统服务 在RHEL7中,系统启动和服务进程都是有systemd管理.这个systemd负责在系统启动或系统运行过程中,激活系统资源,服务守护进程和其他进程. systemd取代了RHEL家族中以往的System V 和 init程序启动系统的做法,它的最终目标是提供更优秀的框架以表示系统服务之间的依赖关系,并以此达到提供系统初始化时服务的并行启动效率,降低shell脚本的使用和系统开销的效果 systemd使用服务单元为基本单位管理系统的启动.

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进程管理

进程管理 进程 Process 某应用程序打开的进程 PID Process ID 类型: 用户空间进程 内核空间进程 静态查看进程的状态 # ps [[email protected] ~]# ps >>>>查看本终端的进程 PID TTY          TIME CMD 4206 pts/0    00:00:00 bash 4378 pts/0    00:00:00 ps 选项的使用方式: BSD风格:选项没有横线- ps aux SysV风格:选项需要带有横线-  

Linux进程管理简谈

Linux系统进程管理简谈 进程是什么? 简单来说进程是一个正在执行的程序的一个副本,存在生命周期,有段指令和代码在不断运行. linux内核存储信息的固定格式:task struct 进程的相关信息存储在链表中 多个任务的task struct组件的链表:task list 进程的创建:父进程创建子进程(内核创建init进程,剩余一切进程有init及其子进程进程创建) 父进程创建子进程时向内核调用fork()来创建子进程并且通过调用clone()复制父进程的信息给子进程 Linux进程的优先级

进程管理

一.进程 1.概念 内核的功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等 Process: 运行中的程序的一个副本,是被载入内存的一个指令集合 进程ID(Process ID,PID)号码被用来标记各个进程 UID.GID.和SELinux语境决定对文件系统的存取和访问权限, 通常从执行进程的用户来继承 存在生命周期 task struct:Linux内核存储进程信息的数据结构格式 task list:多个任务的的taskstruct组成的链表 进程创建: init:第一个进

supervisor——进程管理工具

Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动.重启.关闭进程(不仅仅是 Python 进程).除了对单个进程的控制,还可以同时启动.关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动. 1.安装 Supervisor 可以运行在 Linux.Mac OS X 上.如前所述,supervisor 是 Python 编