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

相关推荐

  • ​linux文件类型及颜色标识整理

          linux文件类型及颜色标识整理                      &…

    Linux干货 2016-10-17
  • shell脚本编程练习

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态 在线的主机使用绿色显示 不在线的主使用红色显示 #!/bin/bash # for i in {1..254};do if ping -c 6 -w 1 192.168.1.$i &> /dev/null;then echo -e…

    2017-11-15
  • Linux用户和组的相关管理命令(一、用户的相关命令)

    Linux是一个可以实现多用户登录的操作系统,通过su – 用户名 可以进行用户之间的切换,从而完成不同登录用户下对私有文件的操作,同时,每个用户有且只有一个主组,但是可以有零个或多个附加组,每个组可以是一个用户的主组,同时还可以是多个用户的附加组。因此,熟练掌握用户和组的相关命令十分重要。 首先,要了解用户和组的配置文件各有两个: 与用户相关的…

    2017-07-22
  • nmap ncat tcpdump浅析

    nmap 的使用 nmap — 网络探测工具和安全/端口扫描器 Usage:nmap [ <扫描类型> …] [ <选项> ] { <扫描目标说明> } 扫描目标说明 -iL inputfilename (从列表中输入) 从 inputfilename中读取目标说明 [root@localhost&…

    Linux干货 2017-03-15
  • httpd功能配置之访问控制

       httpd服务可以实现对资源访问控制,可以根据IP地址和用户两种方式进行控制。    一、用户认证控制      1、在站点根目录下创建一个目录及一个页面文件      2、修改/var/httpd/conf/httpd.conf文件   &n…

    Linux干货 2016-03-11
  • Tomcat基于memcached会话共享

    安装两台memcache,基于tomcat做会话同步;(只对动态内容缓存,用于追踪用户会话) 前提:两个tomcat节点:172.16.100.7(tomcatA.magedu.com),172.16.100.8(tomcatB.magedu.com)两个memcached节点:172.16.100.9, 172.16.100.10一个负载均衡节点:172.…

    2017-05-25