首页 > 技术文章 > 马哥教育第七周

yuanxinlei 2020-05-11 08:52 原文

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

Process: 运行中的程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位

              进程ID(Process ID,PID)号码被用来标记各个进程

              UID、GID、和SELinux语境决定对文件系统的存取和访问权限

              通常从执行进程的用户来继承

              存在生命周期
进程创建:
              init:第一个进程,从 CentOS7 以后为systemd

              进程:都由其父进程创建,fork(),父子关系,CoW:Copy On Write
进程,线程和协程
            

 

 

                                                                              操作系统

查看进程中的线程:
        
   cat /proc/PID/status |grep -i  threads

进程状态

            

进程更多的状态:
             运行态:running

             就绪态:ready

             睡眠态:分为两种,可中断:interruptable,不可中断:uninterruptable

             停止态:stopped,暂停于内存,但不会被调度,除非手动启动
             僵死态:zombie,僵尸态,结束进程,父进程结束前,子进程不关闭,杀死父进程可以关闭僵死 态 的子进程
IPC 进程间通信
IPC: Inter Process Communication
同一主机:
             pipe        管道,单向传输

             socket      套接字文件

             Memory-maped file   文件映射,将文件中的一段数据映射到物理内存,多个进程共享这片内存

             shm shared memory   共享内存

             signal      信号

             Lock        对资源上锁,如果资源已被某进程锁住,则其它进程想修改甚至读取这些资源,都将被 阻塞,直到锁被打开

            semaphore   信号量,一种计数器

不同主机:socket=IP和端口号
            RPC remote procedure call

            MQ  消息队列,生产者和消费者,如:Kafka,RabbitMQ,ActiveMQ
进程优先级

 

进程树 pstree
pstree 可以用来显示进程的父子关系,以树形结构显示
            -p      显示PID

            -T      不显示线程thread,默认显示线程

            -u      显示用户切换

           -H pid  高度指定进程及其前辈进程
进程信息 ps
ps  即process state,可以进程当前状态的快照,默认显示当前终端中的进程,Linux系统各进程的相关 信息均保存在/proc/PID目录下的各文件中

         UNIX选项   如:  -A  -e

         BSD选项 如:  a

         GNU选项 如: --help
         a 选项包括所有终端中的进程

         x 选项包括不链接终端的进程

         u 选项显示进程所有者的信息

         f 选项显示进程树,相当于 --forest

         k|--sort  属性 对属性排序,属性前加 - 表示倒序

         o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem

         L 显示支持的属性列表

        -C cmdlist 指定命令,多个命令用,分隔

        -L 显示线程

        -e 显示所有进程,相当于-A -f 显示完整格式程序信息

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

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

        -u userlist  指定有效的用户ID或名称

        -U userlist 指定真正的用户ID或名称
 查看进程信息prtstat
可以显示进程信息,来自于psmisc包
        -r  raw 格式显示
进程优先级调整
        静态优先级:100-139

        进程默认启动时的nice值为0,优先级为120

        只有根用户才能降低nice值(提高优先性)
nice命令     以指定的优先级来启动进程
renice命令  可以调整正在执行中的进程的优先级
显示CPU相关统计 mpstat    来自于sysstat包
查看进程实时状态 top
进程对应的内存映射pmap
虚拟内存信息vmstat
统计CPU和设备IO信息iostat

系统资源统计 dstat       dstat由pcp-system-tools包提供,用于代替 vmstat,iostat功能
 监视磁盘I/O iotop
显示网络带宽使用情况iftop 通过EPEL源安装
查看网络实时吞吐量nload
综合监控工具 glances

查看进程打开文件 lsof

信号发送 kill

显示当前系统可用信号:
         kill -l  

         trap -l
常用信号:
1) SIGHUP   无须关闭进程而让其重读配置文件

2) SIGINT   中止正在运行的进程;相当于Ctrl+c

3) SIGQUIT  相当于ctrl+\

9) SIGKILL  强制杀死正在运行的进程

15) SIGTERM 终止正在运行的进程,默认信号

18) SIGCONT 继续运行

19) SIGSTOP 后台休眠
killall 来自于psmisc包

推荐阅读