linux运维开发之路(六)— 系统进程及服务的控制

一、什么是进程
        进程就是系统未完成并且正在进行的工作

二、查看进程
        1. 图形方式查看
              gnome-system-monitor     ## 打开资源管理设备

              linux运维开发之路(六)— 系统进程及服务的控制
        2. 进程查看命令
              ps -A       ## 所有进程(以下截图显示部分进程)

                linux运维开发之路(六)— 系统进程及服务的控制
              ps -a       ## 在当前环境中运行的进程,不包含环境信息

               linux运维开发之路(六)— 系统进程及服务的控制
              ps -u       ## 显示进程用户信息

                linux运维开发之路(六)— 系统进程及服务的控制
              ps a        ## 在当前环境中运行的进程,包含环境信息

                linux运维开发之路(六)— 系统进程及服务的控制
              ps x        ## 列出系统中所有运行包含tty输出设备(部分截图)

                linux运维开发之路(六)— 系统进程及服务的控制
              ps f         ## 显示进程的父子关系(ps为/bin/bash的子进程)

                linux运维开发之路(六)— 系统进程及服务的控制                
              ps e       ## 显示进程的详细信息(系统资源的调用)

                linux运维开发之路(六)— 系统进程及服务的控制
              ps组合
                 ps aux    ## 显示系统中所有进程并显示进程用户
                 ps ef       ## 显示进程详细信息并显示进程父子关系
                 ps ax      ## 显示当前系统中的所有进程
        3. 显示进程指定信息   
               ps -o   xxx    
               ps   -o   comm

               linux运维开发之路(六)— 系统进程及服务的控制
               ps      user

               linux运维开发之路(六)— 系统进程及服务的控制
               ps      group

               linux运维开发之路(六)— 系统进程及服务的控制
               ps      %cpu

               linux运维开发之路(六)— 系统进程及服务的控制
               ps      %mem   

               linux运维开发之路(六)— 系统进程及服务的控制
               ps  x  |  grep firefox

               linux运维开发之路(六)— 系统进程及服务的控制
三、进程排序
        1. ps ax --sort=
                                       +%cpu | -%cpu  ("+"正序排序,"-"倒序排序)
                                       +%mem | -%mem   
               ps  ax  --sort=-%cpu  -o  pid,%cpu  |  grep  pid  -v  |  head  -n  5       ## 显示cpu使用率前四的进程的id

               linux运维开发之路(六)— 系统进程及服务的控制
       2. stat中显示的信息
                S     ## 进程状态
                l       ## 内存中有锁定空间
                N     ## 优先级低
                <     ## 优先级高
                +     ## 前台运行
四、优先级查看
        1. ps  ax  -o  pid,nice,comm (优先级部分截图)

               linux运维开发之路(六)— 系统进程及服务的控制

               linux运维开发之路(六)— 系统进程及服务的控制
       2. 指定某个优先级开启进程
               nice -n  优先级数字   进程pid
       3. 改变进程优先级
               renice -n 优先级数字  进程pid

               renice -n -5 1702      ## 修改1702进程的优先级为-5

               linux运维开发之路(六)— 系统进程及服务的控制
               ps a -o pid,nice,comm

                linux运维开发之路(六)— 系统进程及服务的控制
       4. 环境中进程的前后台调用(vim不可在后台运行,因为没有锁定空间)
               jobs                  ## 查看被打入环境后台的进程(+ - 无符号使用fg的优先级)

               linux运维开发之路(六)— 系统进程及服务的控制
               ctrl+z                ## 把占用终端的进程打入后台
               fg  jobsnum     ## 把后台进程调用到前台

               linux运维开发之路(六)— 系统进程及服务的控制
               bg  jobsnum   ## 把后台暂停的进程运行
               comm  &        ## 让命令直接在后台

               linux运维开发之路(六)— 系统进程及服务的控制
五、进程信号
      常用信号等级
               1      ## 进程重新加载配置
               2      ## 删除进程在内存中
               3
               9
             15
             18
             19
             20
六、进程的动态监控
      1.top
            1  显示cpu每个核的负载
            s  调整刷新频率
            c  cpu负载排序
            m  内存使用量排序
            h  查看帮助
            q  退出

             注:命令top直接进入,要查看内容,键入上面相应字母即可修改。

             linux运维开发之路(六)— 系统进程及服务的控制

            u+student   查看student用户进程
            k -15  pid    对指定进程发起信号
七、控制服务
      1.什么是服务
          服务表示后台运行的程序,一般随系统的启动而自动的启动,且在用户logoff后仍然能够继续运行。
      2.用什么控制服务
           系统初始化进程可以对服务进行相应的控制
      3.当前系统初始化进程是什么
           systemd    ## 系统初始化进程 
           pstree       ## 显示系统初始化进程(部分截图)

            linux运维开发之路(六)— 系统进程及服务的控制
  4.进程控制命令
      systemctl                                   ## 服务控制命令
      systemctl status sshd              ## 查看服务状态,(inactive|active)

       linux运维开发之路(六)— 系统进程及服务的控制
      ssh  ---->  sshd (ssh为客户端,sshd为服务端)
      systemctl start(stop) sshd       ## 开启或关闭服务

       关闭sshd服务,再次查看服务状态,显示inactive(dead),

      linux运维开发之路(六)— 系统进程及服务的控制
      systemctl   restart  sshd          ## 重启
      systemctl   reload   sshd         ## 重新加载服务器配置     

      systemctl   enable  sshd         ## 设定开机自启动
      systemctl   disable sshd         ## 开机不自启动
      systemctl  list-units                  ## 列出系统以开启服务的状态
   systemctl list-unit-files           ## 列出所有服务开机启动的状态(disable(开机不启动),enable(开机自启动),static(任意),masked(unmasked)冻结)

       linux运维开发之路(六)— 系统进程及服务的控制
      systemctl  list-dependencies                         ##列出服务的依赖(部分截图)

      linux运维开发之路(六)— 系统进程及服务的控制
      systemctl  set-default multi-user.target         ## 设定系统启动级别为多用户模式
      systemctl  set-default graphical.target          ## 设定系统启动级别为图形模式
      startx                                                                 ## 打开图形