天天看点

Linux操作系统基础 1.6 -- 进程管理......linux中的进程管理......

目录

......

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 -- 进程管理......linux中的进程管理......

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 命令

Linux操作系统基础 1.6 -- 进程管理......linux中的进程管理......

·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、进程前后台调用

<ctrl>+<z>      #把占用shell的进程打入后台挂起

Linux操作系统基础 1.6 -- 进程管理......linux中的进程管理......

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

Linux操作系统基础 1.6 -- 进程管理......linux中的进程管理......

fg     #把后台进程调回前台

Linux操作系统基础 1.6 -- 进程管理......linux中的进程管理......

&    #运行进程在后台

Linux操作系统基础 1.6 -- 进程管理......linux中的进程管理......

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

Linux操作系统基础 1.6 -- 进程管理......linux中的进程管理......

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

......