Linux进程及管理(1)

Linux进程及管理(1)

内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能

Process: 运行中的程序的一个副本;

存在生命周期Linux内核存储进程信息的固定格式:task struct

多个任务的的task struct组件的链表:task list

进程创建:

init

父子关系

进程:都由其父进程创建

fork(), clone()

进程优先级:

0-139

1-99:实时优先级;

100-139:静态优先级;

数字越小,优先级越高;

Nice值:

-20,19

Big O

O(1), O(logn), O(n), O(n^2), O(2^n)

进程内存:

Page Frame: 页框,用存储页面数据

存储Page

MMUMemory Management Unit

IPC: Inter Process Communication

同一主机上:

signal

shm: shared memory

semerphor

不同主机上:

rpc: remote procecure call

socket:

Linux内核:抢占式多任务

进程类型:

守护进程: 在系统引导过程中启动的进程,跟终端无关的进程;

前台进程:跟终端相关,通过终端启动的进程

注意:也可把在前台启动的进程送往后台,以守护模式运行;

进程状态:

运行态:running

就绪态:ready

睡眠态:

可中断:interruptable

不可中断:uninterruptable

停止态:暂停于内存中,但不会被调度,除非手动启动之;stopped

僵死态:zombie

进程的分类:

CPU-Bound

IO-Bound

Linux进程查看及管理的工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup

pstree命令:

  pstree – display a tree of processes

例一:查看文件pstree命令以树状图的方式展现进程之间的派生关系,显示效果比较直观。

[root@localhost~`]# pstree

ps: process state

ps – report a snapshot of the current processes

Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中;

ps [OPTION]…

选项:支持两种风格

常用组合:aux

u: 以用户为中心组织进程状态信息显示

a: 与终端相关的进程;

x: 与终端无关的进程; 

  ~]# ps aux

例一:显示所有进程

[root@localhost ~]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.7 128356  7064 ?        Ss   02:42   0:09 /usr/lib/systemd/systemd --swit
root          2  0.0  0.0      0     0 ?        S    02:42   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    02:42   0:00 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    02:42   0:00 [migration/0]

USER 进程属组    PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

                        USER 进程属组

VSZ: Virtual memory SiZe,虚拟内存集

RSS: ReSident Size, 常驻内存集

STAT:进程状态

Rrunning

S: interruptable sleeping

D: uninterruptable sleeping

T: stopped

Z: zombie

+: 前台进程

l: 多线程进程

N:低优先级进程

<: 高优先级进程

s: session leader

常用组合:-ef

-e: 显示所有进程

-f: 显示完整格式程序信息

例一:显示所有进程进信息

[root@localhost ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 02:42 ?        00:00:09 /usr/lib/systemd/systemd --switched-root --syst
root          2      0  0 02:42 ?        00:00:00 [kthreadd]
root          3      2  0 02:42 ?        00:00:00 [ksoftirqd/0]

常用组合:-eFH

-F: 显示完整格式的进程信息

-H: 以进程层级格式显示进程相关信息

例一:显示所有信息以层级格式显示

[root@localhost ~]# ps -eFH |head
UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root          2      0  0     0     0   0 02:42 ?        00:00:00 [kthreadd]
root          3      2  0     0     0   0 02:42 ?        00:00:00   [ksoftirqd/0]
root          7      2  0     0     0   0 02:42 ?        00:00:00   [migration/

常用组合:-eo, axo

-eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm

axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

 o:指明要显示的字段

ni: nice

pri: priority,优先级

psr: processor, CPU

rtprio: 实时优先级

例一:指明要显示的字段信息

[root@localhost ~]# ps -axo pid,psr,stat,comm | head
   PID PSR STAT COMMAND
     1   0 Ss   systemd
     2   0 S    kthreadd
     3   0 S    ksoftirqd/0
     7   0 S    migration/0
     8   0 S    rcu_bh
     9   0 R    rcu_sched
    10   0 S    watchdog/0
    12   0 S<   khelper
    13   0 S    kdevtmpfs

pgrep, pkill过滤信息

pgrep [options] pattern

        pkill [options] pattern

 

        -u uid: effective user

        -U uid: real user

        -t terminal: 与指定终端相关的进程

        -l: 显示进程名

        -a: 显示完整格式的进程名

        -P pid: 显示其父进程为此处指定的进程的进程列表

例一:显示root进程号信息

[root@localhost ~]# pgrep -u root -l
1 systemd
2 kthreadd
3 ksoftirqd/0
7 migration/0
8 rcu_bh
9 rcu_sched 

pidof

        根据进程名获取其PID

例一:根据进程名获取PID

[root@localhost ~]# pidof sshd
9168 1560

toptop命令可以实时动态地查看系统的整体运行情况

        有许多内置命令:

        排序:

        P:以占据的CPU百分比;

        M:占据内存百分比;

        T:累积占据CPU时长;

        首部信息显示:

        uptime信息:l命令

        taskscpu信息:t命令

        cpu分别显示:1 (数字)

        memory信息:m命令

        退出命令:q

        修改刷新时间间隔:s

        终止指定进程:k

例一:修改刷新时间5

Change delay from 5.0 to

    选项:

        -d #: 指定刷新时间间隔,默认为3秒;

        -b: 以批次方式;

        -n #: 显示多少批次;

htop命令:交互式进程查看器,查看关键性能数据

例一:查看系统进程信息

[root@localhost ~]# htop

选项:

        -d #: 指定延迟时间;

        -u UserName: 仅显示指定用户的进程;

        -s COLOMN: 以指定字段进行排序;

        命令:

        s: 跟踪选定进程的系统调用;

        l: 显示选定进程打开的文件列表;

        a:将选定的进程绑定至某指定CPU核心;

        t: 显示进程树

 

        注意:Fedora-EPEL

进程查看工具:pstree, ps, pgrep, pidof, top, htop

原创文章,作者:kang,如若转载,请注明出处:http://www.178linux.com/77034

(0)
kangkang
上一篇 2015-05-28
下一篇 2015-06-01

相关推荐

  • dd命令详解

    dd命令: convert and copy a file用法:  dd if=/PATH/FROM/SRC of=/PATH/TO/DEST   bs=#: block size, 复制单元大小   count=#:复制多少个bs   of=fil…

    Linux干货 2017-03-19
  • Linux文件的权限与解析

    一,文件的基本权限: 通常,你使用ls -l 命令,就会看到这样的行:   让我们解析一下这些字段代表的意思: -rw-r–r–. 1 root root 1018 Nov 6 2016 usb_modeswitch.conf 文件类型权限  硬链接数 文件所有者 文件所属组 文件容量  文件最后被修改时…

    2017-07-30
  • 一起学DNS系列(十四)DNS查询工具之DIG的使用(1)

      这几节主要讲2个常用的DNS的命令行诊断工具,分别是linux下的DIG和windows下的NSLOOKUP,我们首先来说DIG工具。 DIG,全称Domain Information Groper。原本是Linux平台上BIND服务器诊断的工具(已上传至附件),现在已经有了windows的版本,这节就是利用此工具在windows环境下来做一些…

    2015-03-17
  • linux函数和数组定义

    函数介绍:    函数function 是由若干条shell 命令组成的语句块,实现代码重用和模块化编程。    它与shell 程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell 程序的一部分。    函数和shell 程序比较相似,区别在于:   …

    Linux干货 2017-04-02
  • 时间、screen、echo等——Linux基本命令(5)

    1.     时间 (1)查询时间: date          +%F  年月日          +%T  时分秒  &nbs…

    2017-07-13
  • 软件包管理–rpm、yum

    rpm软件包管理,rpm命令的使用。yum命令使用,yum源的搭建,网络yum源的搭建方法。编译安装http

    Linux干货 2017-12-03