Linux操作系统基础 1.6 -- 进程管理

目录

......

linux中的进程管理

1、进程的定义

2、进程查看命令

3、进程优先级

4、进程前后台调用

5、 进程信号

 6、systemd守护进程

 7、系统中的登陆审计

......


......

linux中的进程管理

1、进程的定义

程序是静态的代码文件
进程是指程序运行时的形态,是程序的一个副本,是有生命周期的(准备期,运行期,终止期)

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

程序执行流是从上到下贯穿运行的
当进程是多任务物,cpu是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程,线程资源是共享的。

#进程状态
#R(TAKS_RUNNING)                          #可执行态(running,ready)
#S(TASK_INTRRUPTABLE)              #可唤醒休眠
#D(TASK_UNINTRRUPTABLE)        #不可唤醒休眠
#T(TASK_STOP)                                  #暂停状态
#Z(EXIT_ZOMBIE)                                #僵死态

2、进程查看命令

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

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 -eo %cpu --sort==%cpu 正序显示进程使用cpu用量
                               ps -eo %cpu --sort==-%cpu 倒序显示cpu用量
                  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

 top               ##动态进程查看

Linux操作系统基础 1.6 -- 进程管理_第1张图片

top中的内容显示信息
#16:18:50      系统时间
#up 7:20      运行时长
#1 user       系统中有一个用户登录
#load average: 0.17, 0.12, 0.04
                          1min  5min  15min
Task中的内容显示信息
#211 total      任务总量
#2 running      正在运行
#209 sleeping   休眠的任务数量
#0 stopped      被暂停数
#0 zombie       僵死任务数
%Cpu(s)中的内容显示信息
#2.0 us      用户空间
#1.0 sy      内核空间
#0.0 ni      nice值调整时间
#97.0 id     空闲时间
#0.0 wa      等待io时间
#0.0 hi      处理硬件中断时间
#0.0 si      处理软件中断时间
#0.0 st      被偷走的时间(vm使用时间)
MiB Mem中的内容显示信息
#818.6 total       总量
#84.6 free         空间
#417.7 used        占用
#316.5 buff/cache  缓存
MiB Swap:   交换分区用量

#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      命令名/命令行

3、进程优先级

1)、CPU资源分配的先后顺序,就是指进程的优先级,优先权高的进程有优先执行的权利

2)、查看系统进程 ps 命令


·UID:代表执行者的身份
·PID:代表这个进程的代号
·PPID:代表这个进程是由那个进程发展衍生而来的,即父进程的代号
·PRI:代表这个进程可被执行的优先级,其值越小越早被执行
·NI:代表这个进程的nice值(即进程可被执行的优先级的修正数值)

  3)、修改进程优先级的命令主要有两个:nice,renice

i、一开始执行程序就指定nice值:nice
nice -n -5 cat                 #nice值为-5 运行cat命令
ii、调整已存在进程的nice:renice
renice -n -5 43331       #PID为43331的进程nice设为-5

参  数:-n<优先等级>等级的范围从-20-19,其中-20最高,19最低,只有系统管理者可以设置负数的等级。

 也可以用top命令更改已存在进程的nice:

top
#进入top后按“r”–>输入进程PID–>输入nice值

 4)、进程的各种状态

S  睡眠状态(sleeping):意味着进程在等待着事件完成
R  运行状态(runing):并不意味着进程一定在运行中,它表明进程要么在运行要么在运行队列里
T  停止状态(stopped):可以通过发送SIGSTOP信号给进程来终止(T)进程。这个被暂停的进程可以通过发送SIGCONT信号让进程继续运行
X  死亡进程(dead):这个状态只是一个返回状态。你不会在任务列表里看到这个状态
<  #优先级高
N  #优先级底
s  #顶级进程
+  #运行在前台

4、进程前后台调用

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

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


fg     #把后台进程调回前台

&    #运行进程在后台

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

5、 进程信号

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

进程信号控制工具:
kill    进程信号   pid
killall 进程信号  进程名字
pkill   进程信号  进程条件

例:   ps 查看进程id
kill -9 进程id        #指定结束某进程
killall -9 进程名     #结束多个同名进程

 6、systemd守护进程

d是守护进程(daemon)的缩写,Systemd 取代了initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程,其为系统的启动和管理提供一套完整的解决方案。

#远程操作主机
#ssh -l 主机名 主机ip地址

#systemctl命令的用法
systemctl 提供了一组子命令来管理单个的 unit,其命令格式为:
systemctl [command] [unit]
command 主要有:
start               ##开启
stop                ##关闭
status              ##查看状态
reload              ##重新加载
restart             ##重新启动服务
enable              ##设定服务开机启动
enable --now        ##设定服务开机启动并当前开启服务
disable             ##设定服务开启不其动
list-units          ##查看系统所有服务当前状态
list-unit-files      ##查看服务开机状态
list-dependencies   ##列出服务依赖性
mask                ##冻结服务
unmask              ##解锁
set-default         ##设定系统运行模式
                   #multi-user.target   无图形网络模式
                   #graphical.target    有图形的网络模式
get-default         ##查看系统运行模式
                    ##系统运行模式
                    #0-6
                    #0   POWEROFF
                    #1   single
                    #2   noG+NETWORK
                    #3   同2
                    #4   同2
                    #5   G+NETWORK
                    #6   REBOOT

 7、系统中的登陆审计

w         # 显示正在登陆系统的账号
            #  -i     显示登陆来源
            # /var/run/utmp
last      # 登陆成功现在已经退出的
            # /var/log/wtmp
lastb   # 试图登陆但未成功
            # /var/log/btmp

......

你可能感兴趣的:(Linux操作系统基础一)