第06章进程管理

作者: fe8478c7ba2a | 来源:发表于2018-04-17 20:23 被阅读12次

Linux系统配置及服务管理_第06章进程管理
名词解释
请思考
What is a process? 什么是进程
Process life cycle 进程的生命周期
Process states 进程状态
什么是进程?
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态。
程序: 二进制文件,静态 /bin/date, /usr/sbin/httpd,/usr/sbin/sshd, /usr/local/nginx/sbin/ngix
进程: 是程序运行的过程, 动态,有生命周期及运行状态。
手稿

    进程的生命周期
        
        父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程 ID (PID),满足跟踪安全性之需。PID 和 父进程 ID (PPID)是子进程环境的元素,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代:
        Centos5/6: init

Centos7: systemd
子进程继承父进程的安全性身份、过去和当前的文件描述符、
端口和资源特权、环境变量,以及程序代码。
随后,子进程可能exec自己的程序代码。
通常,父进程在子进程运行期间处于睡眠(sleeping)状态。
当子进程完成时发出(exit)信号请求,在退出时,
子进程已经关闭或丢弃了其资源环境,剩余的部分称之为僵停(僵尸Zombie)。父进程在子进程退出时收到信号而被唤醒,
清理剩余的结构,然后继续执行其自己的程序代码。
进程状态
在多任务处理操作系统中,每个CPU(或核心)
在一个时间点上只能处理一个进程。
在进程运行时,它对CPU 时间和资源分配的要求会不断变化,
从而为进程分配一个状态,它随着环境要求而改变。

查看进程 process
    目标
        了解如进程的:

• PID,PPID
• 当前的进程状态
• 内存的分配情况
• CPU和已花费的实际时间
• 用户UID,它决定进程的特权

静态查看进程 ps

     [root@tianyun ~]# ps aux |less
               USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
               root          1      0.0         0.6   128096    6708 ?         Ss    16:20    0:01  /usr/lib/systemd/systemd 
         ————————————————————————————
         USER: 运行进程的用户
         PID: 进程ID
         %CPU: CPU占用率
         %MEM: 内存占用率
         VSZ: 占用虚拟内存
         RSS: 占用实际内存
         TTY: 进程运行的终端   //可以开启vim 查询到终端名称
         STAT: 进程状态 man ps (/STATE) 
      ———————————————————————————
         R 运行
         S 可中断睡眠 Sleep,(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 
         D 不可中断睡眠,(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 
         T 停止的进程 
         Z 僵尸进程
         X 死掉的进程
   ————————————————————————————
         [了解]
         Ss s进程的领导者,父进程
         S< <优先级较高的进程
         SN N优先级较低的进程
         R+ +表示是前台的进程组
         Sl 以线程的方式运行 
   ————————————————————————————
         START: 进程的启动时间  //可以开启vim ,在用date验证。
         TIME: 进程占用CPU的总时间
         COMMAND: 进程文件,进程名

ps工具标识进程的5种状态码:

         D 不可中断 uninterruptible sleep (usually IO) 
         R 运行 runnable (on run queue) 
         S 中断 sleeping 
         T 停止 traced or stopped 
         Z 僵死 a defunct (”zombie”) process 
进程排序
  ————————————————————————————
         1 以CPU占比降序排列
         [root@tianyun ~]# ps aux --sort %cpu |less      //--sort排序,升序
         2 以CPU占比升序排列
         [root@tianyun ~]# ps aux --sort -%cpu |less     //-%CPU降序
         3 以驻留内存升序排列
         [root@tianyun ~]# ps aux --sort rss |less
         4 以驻留内存降序排列
         [root@tianyun ~]# ps aux --sort -rss |less
  ——————————————————————————————
进程的父子关系1
 安装一个进程观察,父子进程以及状态。父亲Ss 和  儿子S
         [alice@tianyun ~]$ sudo yum -y install httpd    //安装网站程序。
         [alice@tianyun ~]$ sudo systemctl start httpd   //启动网站
         [alice@tianyun ~]$ sudo systemctl stop firewalld  //关闭防火墙
         [root@tianyun ~]# ps auxf |grep httpd //查看网站程序。
         root 9279 0.0 0.0 4264 672 pts/1 S+ 14:37 0:00 \_ grep httpd
         root 8310 0.0 0.1 10092 2912 ? Ss 14:19 0:00 /usr/sbin/httpd
         apache 8311 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
         apache 8312 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
         apache 8313 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
         apache 8314 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
         apache 8315 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
         apache 8316 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
         apache 8318 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
         apache 8319 0.0 0.0 10092 2060 ? S 14:19 0:00 \_ /usr/sbin/httpd
进程的父子关系2
查看进程的父子关系。 请观察PID和PPID
         [root@xulei ~]# ps -ef
         UID         PID   PPID  C STIME TTY          TIME CMD
         root          1      0  0 1月22 ?       00:00:07 /usr/lib/systemd/systemd 
         root          2      0  0 1月22 ?       00:00:00 [kthreadd]
         root          3      2  0 1月22 ?       00:00:06 [ksoftirqd/0]
自定义显示字段
 //自定义显示字段 --------------------------------
         [root@tianyun ~]# ps axo user,pid,ppid,%mem,command   //xo指定列显示
         [root@tianyun ~]# ps axo user,pid,ppid,%mem,command |grep httpd 
         root 8310 1 0.1 /usr/sbin/httpd
         apache 8311 8310 0.0 /usr/sbin/httpd
         apache 8312 8310 0.0 /usr/sbin/httpd
         apache 8313 8310 0.0 /usr/sbin/httpd
         apache 8314 8310 0.0 /usr/sbin/httpd
         apache 8315 8310 0.0 /usr/sbin/httpd
         apache 8316 8310 0.0 /usr/sbin/httpd
         apache 8318 8310 0.0 /usr/sbin/httpd
         apache 8319 8310 0.0 /usr/sbin/httpd
         root 9236 6798 0.0 grep httpd
   -----------------------------------------------------------
    [root@tianyun ~]# ps axo user,pid,ppid,%mem,%cpu,command --sort -%cpu |less    //针对某些程序,显示某些列,再进行排序。简洁明了

查看指定进程的PID,四种方法

 //查看指定进程的PID,四种方法————————
         第一种。cat
         [root@localhost ~]$ cat /run/sshd.pid 
         830

         第二种。ps
         [root@localhost ~]# ps aux |grep sshd
         root 10180 0.0 0.0 7224 1024 ? Ss 16:00 0:00 /usr/sbin/sshd
         第三种。pgrep

         [root@localhost ~]# pgrep -l sshd
         10180 sshd
         [root@localhost ~]# pgrep sshd
         10180

         第四种。pidof
         [root@localhost ~]# pidof sshd
         10180
查看进程树
    [root@localhost ~]# pstree
        如果没有这个命令
                请安装
                    yum install -y psmisc
动态查看进程 top
    上半部分
            
         第一部分:系统整体统计信息
         top - 11:45:08 up 18:54,  4 users,  load average: 0.05, 0.05, 0.05
         Tasks: 176 total,   1 running, 175 sleeping,   0 stopped,   0 zombie
         %Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
         KiB Mem :  3865520 total,  1100000 free,   580268 used,  2185252 buff/cache
         KiB Swap:  4063228 total,  4063228 free,        0 used.  2917828 avail Mem 
         负载加权值解释:—小于1正常————————————
         load average: 0.86, 0.56, 0.78 系统最近 1分钟,5分钟,15分钟平均负载
第一行是任务队列信息
   当前时间
   系统运行时间,格式为时:分
   当前登录用户数
   系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
第二、三行为进程和CPU的信息
    total 进程总数
    running 正在运行的进程数
    sleeping 睡眠的进程数
    stopped 停止的进程数
    zombie 僵尸进程数
  Cpu(s): 
     us 用户空间占用CPU百分比
     sy 内核空间占用CPU百分比
     ni 用户进程空间内改变过优先级的进程占用CPU百分比
     id 空闲CPU百分比
     wa 等待输入输出的CPU时间百分比
     hi:硬件CPU中断占用百分比
     si:软中断占用百分比
     st:虚拟机占用百分比
 两行为内存信息
Mem:
    KiB Mem代表物理内存,KiB Swap代表交换空间,它们的单位都是KiB。
    total、used和free没什么好介绍的,就是总共多少,然后用了多少,还剩多少。
    buff/cached代表了buff和cache总共用了多少,buff一般都比较小,跟cache比可以忽略不计;cache代表是用来缓存磁盘上文件内容的,所以占有空间很大,Linux一般会尽可能多的将空闲物理内存用于 cache。

Swap: 
    total    交换区总量
    used    使用的交换区总量
    free    空闲交换区总量
    avail Mem表示可用于进程下一次分配的物理内存数量,这个大小一般比free大一点,因为除了free的空间外,系统还能立即释放出一些空间来。
那么怎么判断当前内存使用情况出现了异常呢?有下面几点供参考:
 Mem free的值比较小,并且buff/cache的值也小
free的值比较少并不一定代表有问题,因为Linux会尽可能多的将内存用于 cache,但是如果buff/cache的值也小,就说明内存吃紧了,系统没有足够多的内存用于cache,如果当前服务器部署是一个需要频繁的读写磁盘的应用,如FTP服务器,那么对性能的影响将会非常大!!!

Swap used的值比较大,
这种情况比上面的更严重,正常情况下swap应该很少被使用,used值比较大说明交换空间被使用的比较多,如果通过vmstat命令看到swap in/out的比较频繁的话,说明系统内存严重不足,整体性能已经受到严重影响
关于buffers的小实验
做个小实验,观察缓存的作用。
      time cp -rf /etc /tmp/etc1
      time cp -rf /etc /tmp/etc1
  注意观察两次复制的时间,大大缩小,是因第二次的数据已经到了buffer了。
在top的buffer/cache会有体现。
       字段介绍
        PID,USER,%CPU,%MEM略
        VIRT:virtual memory usage 虚拟内存
                1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
                2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
                   需要这些内存,但并没有占满。
        RES:resident memory usage 常驻内存
                1、进程当前使用的内存大小
                2、包含其他进程的共享
                3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
                    用了多少内存
        SHR:shared memory 共享内存
                1、除了自身进程的共享内存,也包括其他进程的共享内存
                2、计算某个进程所占的物理内存大小公式:RES – SHR

第二部分:进程信息

      命令
           h|?帮助
           M 按内存的使用排序
           P 按CPU使用排序
           N 以PID的大小排序
           R 对排序进行反转
           f 自定义显示字段

           < 向前
           > 向后
           z 彩色,Z设置彩色,使用数字调整
           W 保存top环境设置
top技巧
    动态查看进程 top,像windows的任务管理器
           [root@tianyun ~]# top          //回车,立刻刷新。按z彩色显示,按F,通过光标设置列的顺序。
           [root@localhost ~]# top -d 1   //每1秒刷新。
           [root@localhost ~]# top -d 1 -p 10126 查看指定进程的动态信息
           [root@localhost ~]# top -d 1 -p 10126,1    查看10126和1号进程
           [root@localhost ~]# top -d 1 -u apache 查看指定用户的进程
           [root@localhost ~]# top -d 1 -b -n 2 > top.txt //-b附加参数,只看2次top信息后写入到文件
           [root@localhost ~]#vim  top.txt     //最后打开文件详细阅读
top交互命令(了解)
    Ctrl+L 擦除并且重写屏幕。 
           h或者? 显示帮助画面,给出一些简短的命令总结说明。 
           k       终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。 
           i 忽略闲置和僵死进程。这是一个开关式命令。 
           q 退出程序。 
           r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。 
           S 切换到累计模式。 
           s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。 
           f或者F 从当前显示中添加或者删除项目。 
           o或者O 改变显示项目的顺序。 
           l 切换显示平均负载和启动时间信息。 
           m 切换显示内存信息。 
           t 切换显示进程和CPU状态信息。 
           c 切换显示命令名称和完整命令行。 
           M 根据驻留内存大小进行排序。 
           P 根据CPU使用百分比大小进行排序。 
           T 根据时间/累计时间进行排序。 
           W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

使用信号控制进程

信号种类
    给进程发送信号
           [root@tianyun ~]# kill -l //列出所有支持的信号
   编号 信号名
           1) SIGHUP 重新加载配置
           2) SIGINT 键盘中断Ctrl+C
           3) SIGQUIT 键盘退出Ctrl+\,类似SIGINT
           9) SIGKILL 强制终止,无条件
           15) SIGTERM 终止(正常结束),缺省信号
           18) SIGCONT 继续
           19) SIGSTOP 停止,该进程还未结束, 只是暂停执行
           20)SIGTSTP 暂停Ctrl+Z
重点1,9,15。请注意1和15的区别
作业1(信号1,15)
作业1: 给vsftpd进程发送信号1,15(重新加载配置,再停止。)
  1  安装文件服务器并启动。
           [root@localhost ~]# yum install -y vsftpd
           [root@localhost ~]# systemctl start vsftpd       (服务器的公共目录在/vat/ftp)
           [root@localhost ~]# systemctl stop firewalld

 2 查询文件服务器进程。
           [root@localhost ~]# ps aux |grep vsftpd
           root 9160 0.0 0.0 52580 904 ? Ss 21:54 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
           注意观察进程PID

 3 重启进程。观察进程ID未变
           [root@localhost ~]# kill -1 9160 //发送重启信号**************
           例如vsftpd的配置文件发生改变,希望重新加载
           root 9160 0.0 0.0 52580 904 ? Ss 21:54 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

 4 发送停止信号。搜索不到进程了。
           [root@localhost ~]# kill 9160 //发送停止信号****************
           vsftpd服务有停止的脚本 systemctl stop vsftpd
           [root@localhost ~]# ps aux |grep vsftpd
作业2(信号1,15)
作业2:对任务计划进程(crond)发送1和15信号。
   //1
           [root@localhost ~]$ ps aux |grep crond
           root 478 0.0 0.1 124144 1572 ? Ss 09:35 0:00 /usr/sbin/crond -n
           [root@localhost ~]$ kill -1 478
           [root@localhost ~]$ ps aux |grep crond
           root 478 0.0 0.1 124144 1572 ? Ss 09:35 0:00 /usr/sbin/crond -n

   //15
           [root@localhost ~]$  kill 478
           [root@localhost ~]$ ps aux |grep crond
           [root@localhost ~]$  systemctl start crond 
           [root@localhost ~]$ ps aux |grep crond
           root 22319 0.0 0.1 124140 1548 ? Ss 14:54 0:00 /usr/sbin/crond -n
作业3(9,15)
  信号测试9,15
           1 创建2个文件,查看终端号。
               [root@tianyun ~]# touch file1 file2
               [root@tianyun ~]# tty 
                     /dev/pts/1

           2 通过一个终端,打开一个vim
               [root@tianyun ~]# vim file1

           3 通过另一个终端,打开一个vim
               [root@tianyun ~]# tty
                          /dev/pts/2
               [root@tianyun ~]# vim file2

           3 通过另一个终端,查询两个进程。
               [root@tianyun ~]# ps aux |grep vim
               root 4362 0.0 0.2 11104 2888 pts/1 S+ 23:02 0:00 vim file1
               root 4363 0.1 0.2 11068 2948 pts/2 S+ 23:02 0:00 vim file2

           4 发送信号15 和信号9 ,观察两个终端程序状态。
               [root@tianyun ~]# kill 4362
               [root@tianyun ~]# kill -9 4363
           观察两个终端,一个正常终止,一个非法杀死。
           ——————————————————————————————
           5 重复第1-3步,使用killall  杀死所有vim进程。
               [root@tianyun ~]# killall vim //给所有vim进程发送信号
               [root@tianyun ~]# killall httpd
            建议尽量不要使用kill -9
作业4(18,19)
    信号测试18继续,19暂停
      1 查询远程登录程序SSH的进程号(使用不同终端登陆服务器)
           [root@localhost ~]# ps aux |grep sshd
           root 5571 0.0 0.0 64064 1164 ? Ss 09:35 0:00 /usr/sbin/sshd

      2 发送暂停信号,并查询状态Ts
           [root@localhost ~]# kill -STOP 5571      //等同于-19
           [root@localhost ~]# ps aux |grep sshd
           root 5571 0.0 0.0 64064 1164 ? Ts 09:35 0:00 /usr/sbin/sshd
           看到状态为Ts不再接受处理。T停止状态

      3 发送继续信号,查看状态,发现终端可以继续运行。
           [root@localhost ~]# kill -cont 5571      //等同于-18
           [root@localhost ~]# ps aux |grep sshd
           root 5571 0.0 0.0 64064 1164 ? Ss 09:35 0:00 /usr/sbin/sshd
           又继续运行了。cont 就S 状态了。

作业5(18,19)(了解)
      1 查看计划任务程序crond
           [root@localhost ~]$ ps aux |grep crond
           root 22319 0.0 0.1 124140 1568 ? Ss 14:54 0:00 /usr/sbin/crond -n
           yang 22427 0.0 0.0 112648 964 pts/2 R+ 15:07 0:00 grep --color=auto crond

      2 暂停计划任务程序。
           [root@localhost ~]$ 
           [root@localhost ~]$ sudo kill -19 22319
           [root@localhost ~]$ ps aux |grep crond
           root 22319 0.0 0.1 124140 1568 ? Ts 14:54 0:00 /usr/sbin/crond -n
           yang 22431 0.0 0.0 112648 964 pts/2 R+ 15:07 0:00 grep --color=auto crond

      3 继续计划任务程序。观察状态
           [root@localhost ~]$ 
           [root@localhost ~]$ sudo kill -cont 22319
           [root@localhost ~]$ ps aux |grep crond
           root 22319 0.0 0.1 124140 1568 ? Ss 14:54 0:00 /usr/sbin/crond -n
           yang 22436 0.0 0.0 112648 960 pts/2 R+ 15:08 0:00 grep --color=auto crond
           总结:kill带ID,killall带程序名称
kill (PID or Job ID) killall (name)
作业6:杀死一个用户(了解)
    作业4:踢出一个从远程登录到本机的用户
           1 查看pkill命令
               [root@tianyun ~]# pkill --help
           大家多看帮助,翻译可以借助软件。

           2 请使用一个普通用户登录系统。杀掉一个连接用户。
               ssh alice@192.168.100.10
               [root@tianyun ~]# pkill -u alice
           杀掉了用户。
命令
            kill,killall,pkill,top
进程优先级nice
简介
    Linux 进程调度及多任务
        每个CPU(或CPU核心)在一个时间点上只能处理一个进程,通过时间片技术,Linux实际能够运行的进程(和线程数)可以超出实际可用的CPU及核心数量。Linux内核!!!进程调度程序!!!将多个进程在CPU核心上快速切换,从而给用户多个进程在同时运行的印象。

        
        
    nice 值越高: 表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
    nice 值越低: 表示优先级越高,例如-20,该进程更不倾向于让出CPU。

两个值:nice值和PR值
    在top中显示的优先级有两个,PR值和nice值
    查看进程的nice级别
  1. 使用top查看nice级别
    NI: 实际nice值
    PR: 将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39

    2. 使用ps查看nice级别(自定义,显示pid 和comm以及nice值并排序。)

        [root@localhost ~]# ps axo pid,command,nice,cls --sort=-nice
        cls表示显示策略列。
        TS 表示该进程使用的调度策略为SCHED_OTHER
        FF表示高级进程first in  first out。

启动具有不同nice级别的进程
    示例1:不同的nice值

        启动进程时,通常会继承父进程的 nice级别,默认为0。观察两个程序的不同nice值。

            [root@localhost ~]# nice -n -5 sleep 6000 &
            [1] 2220
            [root@localhost ~]# nice -n -10 sleep 7000 &
            [2] 2229
            [root@localhost ~]# ps axo command,pid,nice | grep sleep
            sleep 6000                    2220  -5
            sleep 7000                    2229 -10
            grep --color=auto sleep       2233   0

更改现有进程的nice级别
    1 使用top更改
            1 打开一个程序
              [root@localhost ~]# sleep 12345 &
              [1] 2630

            2 查询该进程
              [root@localhost ~]# ps aux | grep sleep
              root    2630  0.0  0.0 107896   604 pts/0    S    07:29   0:00 sleep 12345

            3 使用top更改nice级别
              [root@localhost ~]# top -d 1 -p 2630
            按r键 //调整进程的优先级(Nice Level) (-20高) ---0--- (19低)
            回车 //确认该程序。
            -20
            回车  //确认修改nice值。

   如果直接使用top,使用R调整nice值,先输入PID,再输入nice值即可。
使用shell更改
    使用shell更改nice级别
            1  创建一个睡眠程序。
              [root@localhost ~]# sleep 7000 &
              [2] 2669

            2  修改他的nice值。
              [root@localhost ~]# renice -20 2669
              2669 (进程 ID) 旧优先级为 0,新优先级为 -20
              观察修旧的nice值。
作业控制 jobs(了解)
    简介
        在shell中同时运行多个命令。&和ctrl+Z
        作业控制是一个命令行功能,允许一个shell 实例来运行和管理多个命令。
        如果没有作业控制,父进程fork()一个子进程后,将sleeping,直到子进程退出。
        使用作业控制,可以选择性暂停,恢复,以及异步运行命令,让 shell 可以在子进程运行期间返回接受其他命令。

    关键词介绍
        foreground, background, and controlling terminal

          foreground: 前台进程:是在终端中运行的命令,该终端为进程的控制终端。前台进程接收键盘产生的输入和信号,并允许从终端读取或写入到终端。
          background: 后台进程:没有控制终端,它不需要终端的交互。


示例1:
    [root@tianyun ~]# sleep 2000
            运行一个程序,当前终端无法输入。

      1  直接运行后台程序。暂停一个前台程序。
            [root@tianyun ~]# sleep 3000 & //运行程序(时),让其在后台执行
            [root@tianyun ~]# sleep 4000 //^Z,将前台的程序挂起(暂停)到后台
            [2]+ Stopped sleep 4000

      2 查询所有程序。注意一个是后台运行S,一个后台暂停T。
            [root@tianyun ~]# ps aux |grep sleep
            root 8895 0.0 0.0 100900 556 pts/0 S 12:13 0:00 sleep 3000
            root 8896 0.0 0.0 100900 556 pts/0 T 12:13 0:00 sleep 4000


       3 只查看后台进程。
            [root@tianyun ~]# jobs //查看后台作业
            [1]- Running sleep 3000 &
            [2]+ Stopped sleep 4000
       4 执行暂停程序,和调动后台程序至前台。
            [root@tianyun ~]# bg 2 //让作业2在后台,从暂停到运行
            [root@tianyun ~]# fg  1 //将作业1调回到前台

            [root@tianyun ~]# kill  %1 //kill %1,结束后台作业1.
            注意,kill 1   和   kill   %1  不同,前者终止PID为1的进程,后者杀死作业。
文件系统 proc (了解)
    简介
        虚拟文件系统: 内核、进程运行的状态信息
    CPU
        /proc/cpuinfo
            [root@tianyun ~]# grep 'processor' /proc/cpuinfo //逻辑cpu的个数
            processor : 0
            processor : 1
            [root@tianyun ~]# grep 'physical id' /proc/cpuinfo //物理cpu的个数
            physical id : 0
            physical id : 0
            ==flags
            lm(64位)---------------------------------
            vmx 支持虚拟化 Intel----------------------
            svm 支持虚拟化 AMD-------------------------


            [root@tianyun ~]# egrep 'lm|vmx|svm' /proc/cpuinfo 
            flags : fpu vme de clflush dts acpi lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
            flags : fpu vme de clflush dts acpi lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm

相关文章

  • 第06章进程管理

    Linux系统配置及服务管理_第06章进程管理名词解释请思考What is a process? 什么是进程Pro...

  • Android性能探索

    进程管理&内存管理 进程生命周期进程优先级:前台进程可见进程服务进程后台进程 (LRU Cache & 占用内存...

  • linux 下的系统调用

    一、主要有以下模块 -进程管理-内存管理-文件管理-信号处理-进程通信-网络通信 一、进程管理 1.父进程通过fo...

  • Linux 系统管理

    视频教程:Linux系统管理 一、进程管理 进程管理 简介:进程就是正在运行的程序或者命令,进程管理就是对正在运行...

  • Linux进程管理详解(转)

    Linux进程管理详解 1.1 Linux进程管理 进程管理是操作系统的最重要的功能之一。有效率的进程管理能保证一...

  • Linux 内存笔记基础

    系统 1. 内存管理 2. 文件目录 3. IO 4. 进程管理进程创建进程控制进程通信进程同步 5. 线程管理线...

  • 第3章 进程管理

    一、进程 进程就是处于执行期的程序以及相关资源的总称(目标码存放在某种存储介质上),是正在执行的程序代码的实时结果...

  • supervisor

    Supervisor进程管理,只能管理非daemon的进程,不能管理守护进程。 安装 yum 默认主配置文件在/e...

  • 操作系统总览

    操作系统的 操作系统的用户界面 进程管理 处理机调度 存储管理 进程和存储管理示例 windows进程和内存管理 ...

  • Linux进程管理 day22

    1.管理进程状态2.管理后台进程3.进程的优先级4.系统平均负载 一、管理进程状态 昨天主要学习了进程(正在运行的...

网友评论

    本文标题:第06章进程管理

    本文链接:https://www.haomeiwen.com/subject/akqykftx.html