Linux下的进程操作

本文详细介绍了Linux系统中的进程操作,包括查看进程状态的命令、进程排序、优先级调整、前后台进程切换、进程信号处理、动态监控进程的工具top以及服务的控制。通过实例展示了如何查看、管理进程,以及如何处理进程的优先级和信号,还提到了如何控制服务的启动和状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程

1.进程状态

R(running):该程序正在运行
S(sleeping):该程序正在睡眠状态(idle),但可以被唤醒(signal)
D 不可被唤醒的睡眠状态:通常进程可能在等待I/O的情况
T (stop):停止状态,可能是在工作控制(背景暂停)或除错状态(traced)
Z(Zombie):僵尸状态,该程序已经终止但却无法被移除至内存外

2.查看进程
(1)常用命令

   ps	-A		##所有进程
    	-a		##在当前环境中运行的进程,不包含环境信息
    	-u		##显示进程用户信息
    	 a		##再当前环境中运行的进程
    	 x|-x	##列出系统中所有运行包含tty输出设备
    	 f		##显示进程的父子关系
    	 e		##显示进程的详细信息(系统资源的调用)

查看所有进程在这里插入图片描述
查看当前环境运行的进程
显示进程用户信息
列出系统中所有运行包含tty输出设备
在这里插入图片描述
显示进程的详细信息
显示进程的父子信息
在这里插入图片描述

(2)常用组合

ps aux		##显示系统中所有进程并显示进程用户
ps ef		##显示进程详细信息并显示进程父子关系
ps ax		##显示当前系统中的所有进程
pstree		##显示当前系统的进程树

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)显示进程指定信息(可与进程的查看命令一起使用)
默认显示当前环境的进程指定信息,加上ax会显示全部

ps -o  xxx		##显示进程的指定信息
   -o  comm		##进程名称
       user		##进程所有人
       group 	##进程所有组
       %cpu		##进程cpu使用率
       %mem		##进程内存使用率
       pid		##进程id
       nice     ##进程优先级

在这里插入图片描述查看所有进程的内存使用率
在这里插入图片描述
在这里插入图片描述
3.进程排序

ps ax --sort=
				+%cpu|-%cpu  ##按cpu使用率升序排列|按cpu使用率降序排列
		 		+%mem|-%mem  ##按内存使用率生序排序|按内存使用率降序排序

按cup使用率升序排序
在这里插入图片描述
按内存使用率降序排序
在这里插入图片描述
举例: 抓取系统中内存使用量排在前五的进程的pid

ps ax -o pid --sort=-%mem|head -n 5

在这里插入图片描述

4.进程优先级
(1).进程的优先级范围

-20~19    ##-20表示优先级最高,19表示优先级最低

(2)优先级查看

ps ax -o pid,nice,comm,stat

在这里插入图片描述

补充:
stat中显示的信息

S 	##进程状态
l	##进程优先级
N	##优先级低
<	##优先级高
+	##前台运行
s	##顶级运行

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

nice -n 优先级数字	进程名称
nice -n -10 firefox 	##开启firefox并且指定程序的优先级为-10

在这里插入图片描述
(4)改变进程优先级

renice -n 优先级数字 	进程pid
renice -n -5 2814	##改变端口为2814进程的优先级

[root@localhost ~]# renice -n -5 2814
2814 (process ID) old priority 0, new priority -5
[root@localhost ~]# ps -o pid,nice,comm,stat
PID NI COMMAND STAT
2814 -5 bash S<s
2913 5 vim TN
2956 -5 ps R<+

gedit &
注意:&符号表示让进程运行并放入后台

5.环境中进程的前后台调用

jobs					##查看环境后台中运行的程序
ctrl+z					##把占用终端的进程打入后台暂停运行(无法进行操作)
fg 后台进程运行的工作号	##把后台进程调回前台(点进程序后可以进行操作(占用终端)但如果程序再此打入后台后便无法使用)
bg 后台进程运行的工作号	##把后台暂停的进程运行(点进程序后可以进行操作且不占用终端)
进程名   &					##让进程直接在后台运行,(比如vim &,gedit &)		

注意:后台进程工作号后的±(如果fg后没有加工作号那么则先运行默认操作再次默认操作)
+ 表示默认操作
- 表示次默认擦作
无符号 表示暂时无操作,必须等默认操作和次默认操作之后才会给其赋值操作

示例:
开启一个进程
在这里插入图片描述
按ctrl+z并查看jobs(后台进程)
在这里插入图片描述
用fg命令将进程调回前台
在这里插入图片描述

输入gedit & 让其在后台运行
在这里插入图片描述
后台进程的操作顺序
在这里插入图片描述
当输入fg时后面不加进程的工作号,将按默认顺序依次操作

6.进程信号

1            	      ##进程重新加载配置(在进程不被关闭的状态下让其重新读取配置文件然后更改配置)
2             		  ##删除进程在内存中的数据(有锁定空间的进程会被关闭,但无锁定空间的进程不会被关闭比如shell)
3            	      ##删除鼠标在内存中的数据
9             		  ##强行结束单个进程	(不能被阻塞)
15           	      ##正常关闭进程 	       (可能会被阻塞)       
18           	      ##运行暂停的进程(进程在被运行后会自动写入暂停时输入的字符)
19           	      ##暂停某个进程   	(不能被阻塞)
20            		  ##把进程打入后台(暂停)  (可以被阻塞)  

比如手动开启的gedit用信号20暂停时还可以继续操作,用信号19暂停时便不可以操作
用shell开启的gedit用信号19和20都可以暂停且不可以操作

man 7 signal  			  ##查看信号详细信息                           
kill    -信号   进程pid	  ##按pid操作
killall -信号   进程名字	  ##按名操作
pkill   -u student -信号   ##按条件操作

举例:
利用信号9强行结束一个进程
在这里插入图片描述
利用信号2删除gedit在内存中的数据,因为gedit在系统中有锁定空间,所以被结束
在这里插入图片描述

利用信号20将gedit进程打入后台
在这里插入图片描述

7.进程的动态监控
top

1	##显示cup每个核的负载
s	##调整刷新频率
c	##cpu负载排序
m	##内存使用量排序
h	##查看帮助
u	##查看指定用户进程
k	##对指定进程发起信号
q	##退出

在这里插入图片描述
输入s将刷新频率有1.0s到2.0s
在这里插入图片描述
输入m则变成由内存使用量mem排序
在这里插入图片描述

8.控制服务
(1)什么是服务
定义:系统中运行的对于系统本身没有意义但是对客户主机有重大意义的程序叫做服务性软件,简称服务(也可看作是一类进程的总和)

cs模型
c:client
s:server
vnc为例
c-----tigervnc viewer客户端
s-----vncserver服务端

(2)控制服务
系统初始化进程可以对服务进行相应的控制
(3)当前系统初始化进程

systemd		##系统初始化进程
pstree		##显示系统中的进程数

(4)进程控制命令
ssh------->sshd
client server

systemctl			##服务控制命令
	systemctl	status  sshd	##查看服务状态inactive(不可用)active(可用)
	systemctl	start   sshd	##开启服务
	systemctl	stop    sshd	##关闭服务	
	systemctl	restart sshd	##重启服务	
	systemctl	reload  sshd	##重新加载服务配置
	systemctl	enable  sshd	##设定服务开机启动
	systemctl	disable sshd	##设定服务开机不启动
	systemctl	list-units		##列出已经开启服务当前状态
	systemctl	list-unit-files ##列出所有服务开机启动的状态

查询sshd的服务状态
在这里插入图片描述
关闭sshd的服务后再查询服务状态
在这里插入图片描述
设置sshd服务开机启动
在这里插入图片描述
当查看所有服务开机启动的的状态时
在这里插入图片描述
其后有一栏STATE的状态

关于state(状态)的几种状态:

1.static	##静止
2.masked	##锁定
3.enabled	##开启
4.disabled	##关闭  


  systemctl	list-dependencies##列出服务的依赖

在这里插入图片描述

mask    sshd(锁定后服务无法开启)
unmask	sshd

注意看Loaded栏的变化
在这里插入图片描述

当服务处于锁定状态时,无法用start开启服务
在这里插入图片描述
解决方法:先将服务解除锁定,再开启
在这里插入图片描述

9.关于系统开机时是否显示图像

systemctl	set-default multi-user.target ##设定系统启动级别为多用户模式(无图形)
systemctl	set-default graphical.target  ##设定系统启动级别为图形模式

设置开机为无图形页面
在这里插入图片描述
开机页面
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值