(六)Linux中的进程管理

目录

###1.进程定义###

###2.进程查看命令###

### 3.进程优先级 ###

###4.进程前后台调用 ###

### 5.进程信息号 ###

### 6.system 守护进程 ###


###1.进程定义###

#进程的定义:

程序是静态的代码文件

进程是指程序运行时的形态

进程是程序运行的一个副本

进程是有生命周期的的(准备期,运行期,终止期)

#进程&线程

进程是资源调用的最小单位

线程是进程的最小单位

线程是进程的小任务

程序执行流是从上到下贯穿运行的

当进程是多任务时,cpu是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程

#进程状态

#R(TASK_RUNNING)                            ##可执行态(running,ready)

                                                                      # running指进行状态  

                                                                      #ready是准备(等待)被处理状态

#S(TASK_INTRRUPTABLE)                  ##可唤醒休眠

                                                                        #指占用进程时间过长即超时,进入可唤醒状态

#D(TASK_UNNINGTRRUPTABLE)          ##不可唤醒状态

                                                                      #指缺少让进程处理的必要条件,为不可唤醒状体

#T(TASK_STOP)                                   ##暂停状态

#Z(EXIT_ZOMBIE)                                ##僵死态

                                                                      #指进程已经处理完毕,但仍占用系统资源,一般表现为程序bug

###2.进程查看命令###

gonme-system-monitor                                  ##图形进程查看工具

 ps  (process status)                               ##进程查看

ps                                                              ##ps 命令的三种执行风格 unix bsd GNU

                                                                  #bsd风格下的命令

                                                                    #a 与终端相关的进程(当用户登录系统后产生的进程都是带终端的)

                                                                   # x  与终端无关的进程

                                                                   # u  用户信息归类的查看方式

                                                                   #  f 进程层级关系

                                                                   # o 显示指定参数

                                                                   # pid  comm nice pri pcpu ppid stat,user,group

                                                                  #unix风格下的命令

                                                                  # -e  显示所有进程

                                                                  # -f 显示信息的完整结构

                                                                  # -H 显示进程的层级结构·

                                                                  # -o 显示指定参数

                                                                  # --sort=  排序

                                                                  # + 表示正序   - 表示倒序

表示查看所有cpu进程信息的正序排列

                                                                  #

                                                                  #ps    ax 显示信息如下:

                                                                  #PID    进程id

                                                                  #TTY    进程用到的终端

                                                                  #STAT    进程状态

                                                                  #TIME    进程占用cpu时长

                                                                  #COMMAND   进程名称

                                                               #ps aux 显示信息如下:

                                                                #USER             进程所有人

                                                                #PID                 进程id

                                                                #%CPU            进程使用cpu的用量

                                                                #%MEM           进程所用到的内存用量

                                                                #VSZ                 进程使用的虚拟内存大小

                                                                #RSS                 进程常驻内存中的数据大小

                                                                #TTY                  进程用到的终端

                                                                #STAT                 进程状态

                                                                #START              进程运行时长

                                                                #TIME                进程占用CPU时长

                                                                #COMMAND      进程名称

pgrep                                                      #进程过滤

                                                                # -u uid            显示指定用户进程

                                                                #  -U user        显示指定用户进程

                                                                # -t tty              显示指定终端进程

                                                                # -l                   显示进程名称     

                                                                # -a                  显示进程的完整名称

                                                                # -P                  进程的子进程 

pidof    vim                                              ##查看vim的pid

                                                                  #根据进程的名字查看进程的pid

TEST:

调取系统中内存使用量排在top5进程pid

 

top                                                          ##动态进程查看

      #top中的内容显示信息

          #09:48:51    系统时间

          #up   18:54    运行时长

                           #2 users       系统中有两个用户登录

                       # load ayerage:  0.75, 0.53, 0.41

                                                                                          1min  5min  15min

                                                               #Task:

                                                               #331  tatal        任务总量

                                                               #3 running        正在运行

                                                               #329 sleeping   休眠人物数量

                                                               #0 stopped       被暂停数量

                                                               #0 zombie         僵死人物数量

                                                               #

                                                               #%CPU(s)

                                                               #1.5 us             用户空间

                                                               #1.9 sy             内核空间

                                                               #0.0 ni              nice值调整时间

                                                               #58.9 id            空闲时间

                                                                #0.0 wa           等待写入(i0)时间

                                                                #2.1 hi             处理硬件中断时间

                                                                #0.2  si             处理软件中断时间

                                                                #0.0 st              被偷走的时间(vm使用时间)

                                                                #

                                                                #MiB  Mem:

                                                                #7664.6  total                总量

                                                                #5383.9  free                 空闲
                                                                #1312.1  used               占用
                                                                #968.8   buff/cache        缓存
                                                        ( buff指从内存往硬盘里写入 ,cache指硬盘往内存写入)
                                                                #                                                          
                                                                MiB Swap:                     交换分区用量
在系统中,CPU不会直接读取硬盘,CPU使用内存读取硬盘,当内存储存量快满时,可将暂时不用的数据存放于硬盘中(在此过程中需要对硬盘划分区域,划分的分区即为swap,待内存有空闲时再置于内存中
                                      
                                                                #top命令的参数

                                                                #-d                                 指定刷新频率

                                                        例:top -d 1    指的是指定刷新频率为1秒钟

                                                                #-b                                以批次方式显示进程信息

                                                                #-n                                指定显示的批次数量

                                                                # -b和-n 可以结合使用

                                                       例:   top -b -n 2   指以批次方式显示动态进程刷新两次

                                                                #

                                                                 #top内部命令

                                                                 #p                    cpu排序

                                                                 #M                   内存排序

                                                                 #T                    累计展示cpu时间排序        

                                                                 #l                      关闭/开启uptime信息

                                                                 #t                      关闭/开启cpu&task

                                                                 #s                      指定刷新频率   

                                                                 #k                      操作进程

                                                                 #u                      查看指定用户进程

                                                                 #PID                  进程id

                                                                 #USER              进程所有者的用户名

                                                                 #PR                   优先级

                                                                 #NI                     nice值  负值表示高优先级,正值表示低优先级

                                                                 #VIRT                进程使用的虚拟内存总量,单位kb VIRT=SWAP+RES               

                                                                 #RES                 进程使用的,未被换出的物理内存大小,单位kb RES=CODE+DATA

                                                                 #SHR                 共享内存大小,单位kb

                                                                 #S                      进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)

                                                                 #%CPU             上次更新到现在的cpu时间占用百分比

                                                                 #%MEM             进程使用的物理内存百分比

                                                                 #%TIME+           进程使用的cpu时间总计,单位1/100秒

                                                                 #COMMANDD          命令名/命令行

### 3.进程优先级 ###

系统是多任务多用户的操作模式

任务的重要性是有区分的

如何确定任务的重要性

“优先级”           (0的优先级最高,数值越大优先级越低)

范围:0--139

内核自控优先级范围:0--99

用户可控优先级:100--139

nice

-20-19

renice -n -5 43331                     ##更改优先级

nice -n -5 cat                             ##指定优先级打开进程

nice表示在进程开启时指定优先级

renice表示改变优先级    killall结束此进程

killall -9 vim 结束进程  

ps ax -o pid,nice,comm | grep cat

ps ---- > pri    ---  39-0

nice                    - 20-19

priority                0-139(100-139)

 S                          #sleeping

<                           #优先级高

s                           #顶级进程

T                           ##stop

N                          ##优先级低

R                          ##running

+                          #运行在前台

###4.进程前后台调用 ###

执行有些命令(比如gedit)会占用命令行,ctrl+c可以结束此命令

如果想执行下一个命令且还想让上面的那条命令继续执行,则可以 ------->

<ctrl>+<z>           ##把占用shell的进程打入后台挂起 (打入后台后该命令不能运行)

bg  +账号数字      ##把后台挂起的进程运行起来

fg +账号数字        ##把后台进程调回前台

&                          ##运行进程在后台

jobs                      ##查看当前shell中后台的所有工作

### 5.进程信息号 ###

内核和进程之间沟通不能通过字符来沟通,要通过进程信号来沟通

man 7 signal         ##查看信号的级别

#进程信号

1                            ##重新在系统配置文件

2                            ##清空内存中的进程数据

9                            ##清空内存中的鼠标(ctrl+ \)

15                          ##正常关闭进程(会被阻塞)

18                          ##运行被暂停的进程

19                          ##暂停进程(不会被阻塞)

20                          ##暂停进程(会被阻塞的)

 #进程信息控制工具

kill                          进程信号  pid                                    ##可以精准的结束你想结束的进程

killall                       进程信号 进程名字                            ##全部结束掉这个名字的进程

pkill                         进程信号 进程条件                            ##按照进程的条件结束进程

  例:pkill -9 -u westos

### 6.system 守护进程 ###

##实验环境的建立

#配置外部网络

  • 查看有线或无线网卡的名字        设置 -->网络和共享中心-->更改网络适配器
  • 右键以管理员身份打开VMvare Workstation虚拟机
  • 选择虚拟网络编辑器 --> 选择已桥接至:(选择自己的有线/无线)--> 点击确定 --> 应用
  • 选择网络适配器 --> 选择自定义VMnet0(桥接模式) --> 点击确定
  • 查看本主机当前网络相关信息        Windows键+r  --> 右下角会弹出一个对话框 --> 输入cmd  进入内部命令系统界面 --> 输入ipconfig --> 可以查看本主机当前网络ip地址,子网掩码,默认网关, DNS服务器地址

#实验需要两台虚拟机 --> 克隆虚拟机

点击上方菜单栏“虚拟机” --> 点击“管理” --> 点击“克隆”   克隆主机nodea和nodeb

#配置虚拟机内部网络

打开克隆主机nodea -->右键打开一个shell --> 输入命令nm-connection-editor --> 弹出对话框Network Connections 删除所有路径(除virbro外)--> 选择左下角“+”create --> connection name k可以自定义名称 --> 选择"ipv4setting" -->"Method"选择“Manual" --> "Addresses"中选择"Add" --> 输入自己的Address ,Netmask,Getway,DNS severs(Address前两部分不变,第三部分自定义) -->点击”save“ 

#检验网络配置

打开一个shell中输入命令 ping www.baodu.com 检验网络是否配置成功 

#

#远程操作主机

#ssh  远程操作主机

例:ssh -l root 192.168.122.1  表示远程操作主机名为root,IP为192.168.122.1的主机

#守护进程

#替内核分担程序控管其他程序

#通常pid为1

#systemd ------- >systemctl

#systemtcl 管理系统服务

#服务指在系统中开启的共享服务系统资源到网络中的程序

cs          client   --------    server

使用ssh命令登录的人即为客户端,提供让别人登录功能的主机为服务器

#

systemctl命令的用法

          start                                   ##开启

          stop                                   ##关闭

          status                                ##查看状体 

          reload                               ##重新加载

          restart                               ##重新启动服务

          enable                              ##设定服务开机启动

          enable --now                    ##设定服务开机启动并当前开启服务

          disable                             ##设定服务开启不启动

           list-units                          ##查看系统所有服务当前状态

           list-unit-files                    ##查看你服务开机状态

           mask                              ##冻结服务

           unmask                          ##解锁

           set-default                     ##设定系统运行模式

                       例:systemctl set-default 1

                                                 #multi-user.target    无图形网络模式

                              systemctl set-default mnlti-user.target

                                                 #graphical.target    有图形的网络模式

                              systemctl set-default grphical.target

                                                 #查看系统运行模式

           get-defalut                     ##系统运行模式    

                       例:systemctl get-default 1

                                                 #0-6  

                                                 #0          POWEROFF

                                                 #1           single

                                                 #2           noG+NETWORK

                                                 #3

                                                 #4

                                                 #5             G+NETWORK

                                                 #6              REBOOT

### 7.系统中的登陆审计 ###

执行  ifconfig  命令查看主机ip地址

w                                              ##显示正在登陆系统的账号

                                                 ## -i    显示登陆来源

                                                 ##/var/run/wtmp

                                                     

last                                           ##登陆成功现在已经退出的

                                                 ##/var/log/wtmp

lastb                                         ##试图登陆但未成功

                                                ##/var/log/btmp

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值