教你Linux中的进程管理

1.进程定义

#进程的定义:

程序是静态的代码文件

代码是事件执行时的动作或者数据以及逻辑

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

进程是程序的一个副本

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

#进程&线程

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

线程是进程的最小单位

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

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

线程资源是共享的

#进程状态

#R(TASK_RUNNING)

##可执行态(running,ready)

#S(TASK_INTERRUPTABLE)

##可唤醒休眠

#D(TASK_UNINTERRUPTABLE)

##不可唤醒休眠

#T(TASK_STOP)

##暂停状态

#Z(TASK_ZOMBIE)

##僵死态


2.进程查看命令

gnome-system-monitor

#图形进程查看工具

ps

#进程查看

ps          #进程查看
            #ps 命令的三种执行风格 unix bsd GNU
            #a 与终端相关的进程(当用户登陆系统后产生的进程都是带终端的)
            #x 与终端无关相关的进程
            #u 用户信息归类的查看方式
            #f 进程层级关系
            #o 显示指定参数
            # pid comm nice pri pcpu ppid stat,user,group
            #
            #-e 显示所有进程
            #-f 显示信息的完整格式
            #-H 显示进程的层级结构
            #-o 显示指定参数
            #--sort=
            #

            #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 

#进程过滤

pgrep                   #进程过滤
                        #-u uid 显示指定用户进程
                        #-U user 显示指定用户进程
                        #-t tty 显示指定终端进程
                        #-l 显示进程名称
                        #-a 显示进程的完整名称
                        #-P 进程的子进程

pidof

#查看进程id

pidof vim

top

#动态进程查看

top                ##动态进程查看
                   ##top中的内容显示信息
                   #09:48:51 系统时间
                   #up 18:54 运行时长
                   #2 users 系统中有两个用户登陆
                   #load average: 0.75, 0.53, 0.41
                   1min 5min 15min
                   #Tasks:
                   #331 total 任务总量
                   #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 等待io时间
                   #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 缓存
                   #
                   #MiB Swap: 交换分区用量
                   #
                   #top命令的参数(外部指令)
                   #-d 指定刷新频率
                   #-b 以批次方式显示
                   #-n 指定显示的批次数量
                   #
                   #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秒
                   #COMMAND 命令名/命令行

k操作进程

 

 进程结束


3.进程优先级 

系统多任务多用户的操作模式,任务的重要性是有区分的

如何确定任务的重要性?

优先级

范围:0-139

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

 用户可控优先级:100-139

-->nice值   -20-19(负二十到十九)

renice -n -5 43331

##更改优先级,将id43331进程优先级改为-5

 

 进程nice值越小,优先级越高

 nice -n -5 gedit

#指定优先级打开进程

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

#过滤gedit的结果

ps -o nice,stat,comm,pid

#查看进程状态

 

S              #sleeping
<              #优先级高
s              #顶级进程
T              #stop
N              #优先级底
R              #running
+              #运行在前台

4.进程的前后台调用 

<ctrl>+<z>

##把占用shell的进程打入后台挂起

bg

##把后台挂起的进程运行起来

fg

##把后台进程调回前台

&

##运行进程在后台

jobs

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


 5.进程信号

man 7 signal

#查看进程信号

 人为可控信号:

1          #重新加载系统配置文件(source)
2          #清空内存中的进程数据
3          #清空内存中的鼠标(ctrl+\)
9          #强行结束进程(不能被阻塞)
15         #正常关闭进程(会被阻塞)
18         #运行被暂停的进程
19         #暂停进程(不会被阻塞)
20         #暂停进程(会被阻塞的)

 

 

 

 

 

 

 

进程信号控制工具:

kill 进程信号 pid

killall 进程信号 进程名字

pkill 进程名字 进程条件


 6.虚拟机连接网络

1)查看电脑网卡状态

网络和Internet--->网络和共享中心--->更改适配器设置

 2)在虚拟机中打开虚拟网络编辑器

然后关机

 设置完成

虚拟机克隆

虚拟机--->管理--->克隆

打开克隆的虚拟机,用超级用户登录

在shell中运行指令nm-connection-editor

再点击“+”

用ifconfig命令查看网卡设定状况

设置完成

设置另一台主机时,地址要有所不同

设定成功两台主机可以通信

7.系统中的登陆审计

#远程操作主机

w

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

# -i 显示登陆来源

# /var/run/utmp

last

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

# /var/log/wtmp

 

lastb

#试图登录但未成功

#/var/log/btmp

清空相应文件,命令查看的结果也随之清除,数据文件无法直接查看


8.systemd守护进程

在一台主机上开启sshd程序,从而通过网络用远程主机连接,通过shell来控制这台主机

开启sshd是为了其他主机可以通过网络来访问本机或控制本机

sshd开启不是给本机使用的,是给其他主机使用的

服务性软件

安装服务性软件的主机可以称之为服务器(server)

使用服务的主机叫作客户端(client)

#CS模型     client - - - server

实验环境:

#westos_nodea--------->1.1.1.1

#westos_nodeb--------->1.1.1.2

#远程操作主机:

# ssh 远程主机ip -l 远程主机用户

#守护进程

#替内核分担程序控管的程序

#通常pid为1

#systemd -----> systemctl

#systemctl 管理系统服务

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

#systemctl命令的用法

start                              ##开启
stop                               ##关闭
status                             ##查看状态
reload                             ##重新加载
restart                            ##重新启动服务
enable                             ##设定服务开机启动
enable --now                       ##设定服务开机启动并当前开启服务
disable                            ##设定服务开启不启动
disable --now                      ##设定服务开机不启动并当前关闭服务
list-units                         ##查看系统所有服务当前状态
list-unit-files                    ##查看服务开机状态
list-dependencies                  ##列出服务依赖性
mask                               ##冻结服务
unmask                             ##解锁
set-default                        ##设定系统运行模式
                                   #multi-user.target 无图形网络模式
                                   #graphical.target 有图形的网络模式
get-default                        ##查看系统运行模式
                                   ##系统运行模式
                                   #0-6
                                   #0 POWEROFF    关机
                                   #1 single      单用户模式,不需要认证开启后直接得到root  
                                   #用户身份,通常用来做排错
                                   #2 noG+NETWORK 2-4 无图形的网络模式
                                   #3
                                   #4
                                   #5 G+NETWORK   有图形的网络模式
                                   #6 REBOOT      重启系统

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值