Linux之进程管理

一、进程定义

进程:程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是cpu未完成的工作,或者就是一个正在运行中的程序。

进程状态:

R(Running):该程序正在运行中

S(Sleep):该程序目前正在睡眠状态,但可以被唤醒

D :不可以被唤醒的睡眠状态,通常进程可能在等待 I/O 的情况

T :停止状态(stop),可能是工作控制(背景暂停)或除错状态

Z(Zombie):僵尸状态,程序已经终止但无法被移除至内存外

二、ps命令

ps

a    #关于当前环境的所有进程

x| -A    #所有进程

f    #显示进程从属关系

Linux之进程管理_第1张图片

e    #显示进程调用环境工具的详细信息

l    #长列表显示进程的详细信息

u    #显示进程的用户信息

-a    #显示shell前台运行命令的进程,但不保函shell本身

ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat     #指定显示进程的某些信息

%cpu     #显示进程cpu负载

%mem    #显示进程内存负载

user    #进程用户

group    #进程组

comm    #进程名称

nice    #进程优先级

pid    #进程的id

stat    #进程状态

        stat中显示的信息

        S   #进程状态

        l    #内存中有锁定空间

        N    #优先级低

        <    #优先级高

        +    #前台运行

        s    #顶级进程

测试:

Linux之进程管理_第2张图片

ps ax -o %cpu,comm --sort <+|-%cpu > <+|-%mem>    #按照进程信息排序

+    #正序

-    #倒序

%cpu    #cpu负载排序

%mem    #内存负载

测试:以cpu负载倒序显示

Linux之进程管理_第3张图片

三、进程优先级

1、进程的优先级范围:-20~19

2、优先级查看

ps ax -o pid,nice,comm

Linux之进程管理_第4张图片

3、指定某个优先级开启进程

nice -n 优先级数字 进程名称

测试:nice -n -5 vim &     #开启vim并且指定程序优先级为-5

Linux之进程管理_第5张图片

4、改变进程优先级

renice -n 优先级数字 进程pid

测试:renice -n -6 31979    #改变31979进程的优先级为-6

Linux之进程管理_第6张图片

四、环境中进程的前后台调用

jobs    #查看被打入环境后台的进程

ctrl+z    #把占用终端的进程打入后台

fg jobsnum    #把后台进程调回前台

bg jobsnum    #把后台暂停的进程运行

comm &    #让命令直接在后台运行

测试:

Linux之进程管理_第7张图片

ctrl+z后不可执行:

Linux之进程管理_第8张图片

bg 后可运行:

Linux之进程管理_第9张图片

五、进程信号

1、常用信号等级

1    #进程重新加载配置

2    #删除进程在内存中的数据

3    #删除鼠标在内存中的数据

9    #强行结束单个进程(不能被阻塞)

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

18    #运行暂停的进程

19    #暂停某个进程  (不能被阻塞)

20    #把进程打入后台 (可以被阻塞)

man 7 signal    #查看信号详细信息

kill -信号 进程pid    #对单个进程操作

killall -信号 进程名字    #对进程进行批量操作

pkill -u student -信号    #对某个用户下的进程进行操作

测试:强行结束32508这个进程

Linux之进程管理_第10张图片

六、用户登陆审记

w    #查看使用系统的当前用户有那些

w -f    #-f查看使用地点

Linux之进程管理_第11张图片

last    #查看用户登陆成功历史

Linux之进程管理_第12张图片

lastb    #查看用户登陆未成功历史

七、top命令

top    #监控系统负载工具

s     #修改进程刷新间隔时间

Linux之进程管理_第13张图片

m    #根据内存占有率进行排序

Linux之进程管理_第14张图片

c     # 根据 cpu 占有率进行排序

Linux之进程管理_第15张图片

u     #后面输入用户名 , 用来查看该用户发起的所有进程

Linux之进程管理_第16张图片

k     #后面跟要作用的进程 pid, 和发起的信号 (eg:9,15,20) 用来给某个进程发起一信号

q     #退出进程查看界面

h     #显示 top 命令的帮助

Linux之进程管理_第17张图片

八、系统初始化程序

1、systemd

系统初始化程序,系统开始的第一个进程,pid为1

2、systemctl 命令

systemctl list-units     #列出当前系统服务的状态

Linux之进程管理_第18张图片

systemctl list-unit-files     #列出服务的开机状态

Linux之进程管理_第19张图片

systemctl status sshd     #查看指定服务的状态

Linux之进程管理_第20张图片

systemctl stop sshd     #关闭指定服务

Linux之进程管理_第21张图片

systemctl start sshd     #开启指定服务

Linux之进程管理_第22张图片

systemctl restart sshd     #重新启动服务

systemctl enable sshd     #设定指定服务开机开启(需要重启reboot)

systemctl disable sshd     #设定指定服务开机关闭(需要重启reboot)

systemctl reload sshd     #使指定服务重新加载配置

systemctl list-dependencies sshd     #查看指定服务的依赖关系

Linux之进程管理_第23张图片

systemctl mask sshd     #冻结指定服务

Linux之进程管理_第24张图片

systemctl unmask sshd     #启用服务

Linux之进程管理_第25张图片

systemctl set-default multi-user.target     #开机不开启图形(重启时非图形界面)

重启时有如下界面:

Linux之进程管理_第26张图片

systemctl set-default graphical.target     #开机启动图形

setterm     #文本界面设定color

vga=ask      #改分辨率

3、服务状态

systemctl status 服务名称

loaded     #系统服务已经初始化完成,加载过配置

active(running)     #正有一个或多个程序正在系统中执行

atcive(exited)     #仅执行一次就正常结束的服务

atcive(waiting)     #正在执行当中,不过还在等待其他的事件才能继续处理

inactive     #服务关闭

enbaled     #服务开机启动

disabled     #服务开机不自启

static     #服务开机启动项不可被管理

failed     #系统配置错误 

你可能感兴趣的:(Linux)