基于LINUX下的进程管理问题

本文深入讲解了进程的概念、状态及管理方法,包括进程查看、排序、优先级调整、信号发送及服务控制等内容,帮助读者全面掌握Linux进程管理技巧。

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

什么是进程?

程序(program)放置在存储媒体中(如硬盘,光盘,软盘,磁带等)为实体文件的形态存在
进程:程序被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是一个正在运行的程序

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

1.进程的查看命令
ps -A ##所有进程
ps -a ##在当前用户环境运行的程序,不包含环境信息
ps -u ##显示进程用户信息
ps a ##在当前环境中运行的进程
ps x ##列出系统中所有运行包含tty输出设备
ps f ##显示进程的所属关系(父子关系)
ps e ##显示进程的详细信息(系统资源的调用)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ps常用组合
ps aux ##显示系统中的所有进程
ps ef ##显示进程详细信息并显示父子进程
ps ax ##显示当前系统的所有进程
pstree ##显示当前进程的进程树
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
显示进程的指定信息
ps -o xxx ##显示进程的指定信息
comm ##进程名称
user ##进程所有人
group ##进程所有组
%cpu ##进程cpu使用率
%mem ##进程内存使用率
pid ##进程pid
nice ##进程优先级
在这里插入图片描述
2.进程排序
ps ax --sort=
+%cpu|-%cpu
+%mem|-%mnm

在这里插入图片描述
stat中显示的信息
S ##进程状态
l ##内存中有锁定空间
N ##优先级低
< ##优先级高
+ ##前台运行
s ##顶级进程
在这里插入图片描述

3.进程优先级
1.进程的优先级范围-20~19
在这里插入图片描述
在这里插入图片描述
2.优先级的查看
ps ax -o pid,nice,comm
在这里插入图片描述
3.指定优先级
nice -n 优先级数字 进程名称
在这里插入图片描述
修改优先级
renice -n 数字 进程的id
在这里插入图片描述
环境中进程的前后台调用
jobs ##查看被打入环境后台的进程
ctrl+z ##把占用终端的进程打入后台
fg jobsnum ##把后台进程调回前台
bg jobsnum ##把后台暂停的进程运行
comm & ##让命令直接在后台运行
在这里插入图片描述
4.进程信号
常用信号等级
1 ##进程重新加载配置
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
9 ##强行结束单个进程(不可被阻塞)
15 ##正常关闭进程(可能被阻塞)
18 ##运行暂停的进程
19 ##暂停某个进程(不可被阻塞)
20 ##把进程打入后台(可以被阻塞)
man 7 signal ##查看信号的详细信息
在这里插入图片描述
kill -信号 进程的pid
在这里插入图片描述
在这里插入图片描述
注意,在这里kill-15可能无法结束掉比较重要的进程,如bash

killall -信号 进程的名字
在这里插入图片描述
pkill -u student -信号
切换到普通用户关闭vim同时关闭student的shell
在这里插入图片描述

5.进程的动态监控
top 常用的如下:
1. ##显示cpu每个核的负载
s ##调整刷新频率
c ##cpu负载排序
m ##内存使用量排序
h ##查看帮助
u ##查看指定用户进程
k ##对指定进程发起信号
q ##退出
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.控制服务
服务:cs模型:
c:client
s:server
定义:系统中运行的对于系统本身没有意义,但是对客户主机有重大意义的程序叫做服务性软件,简称服务

reloda=kill -1,但是有些服务没办法reload,例如网络服务

远程控制命令:
systemctl	status	sshd	##查看服务状态,inactive(不可用)active(可用)
systemctl	start	sshd	##开启服务
systemctl	stop	sshd	##关闭服务
systemctl	restart	sshd	##重起服务
systemctl	reload	sshd	##重新加载服务配置(同kill -1相同)
systemctl	enable	sshd	##设定服务开机启动
systemctl	disable	sshd	##设定服务开机不启动
systemctl	list-units	##列出已经开启服务当前当前状态
systemctl	list-unit-files	##列出所有服务开机启动的状态 disable,enable,static
systemctl	list-dependencies	##列出服务的依赖
systemctl	mask sshd		##冻结服务
systemctl	unmask	sshd		##解冻服务
systemctl	set-default multi-user,target	##设定系统后启动级别为多用户模式(无图形)
systemctl	set-dafault graphical,target	##设定系统启动级别为图形模式

在这里插入图片描述
如图,在这里sshd服务时正在运行的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一、实验目的 1.掌握在Linux系统下利用命令方式实现用户和组的管理; 2.掌握利用Linux-conf进行用户和组的管理; 3.理解文件权限 4.进行系统进程管理。 二、实验内容 1. 用户的管理  创建一个新用户user01,设置其主目录为/home/user01:#adduser –d /home/user01 -m user01  查看/etc/passwd文件的最后一行,看看是如何记录的。  查看文件/etc/shadow文件的最后一行,看看是如何记录的。  给用户user01设置密码:#passwd user01。  再次查看文件/etc/shadow文件的最后一行,看看有什么变化。  使用user01用户登录系统,看能否登录成功。。  锁定用户user01:#passwd -l user01。  查看文件/etc/shadow文件的最后一行,看看有什么变化。  再次使用user01用户登录系统,看能否登录成功。  解除对用户user01的锁定:#passwd -u user01  更改用户user01的帐户名为user02:#usermod –l user02 user01。  查看/etc/passwd文件的最后一行,看看有什么变化。  删除用户user02。userdel. 2. 组的管理  创建一个新组,stuff:#groupadd stuff。  查看/etc/group文件的最后一行,看看是如何设置的。  创建一个新帐户user02,并把他的起始组和附属组都设为stuff:#adduser –g stuff –G stuff user02。  查看/etc/group文件中的最后一行,看看有什么变化。  给组stuff设置组密码:#gpasswd stuff。  在组stuff中删除用户user02:#gpasswd –d user02 stuff。  再次查看/etc/group文件中的最后一行,看看有什么变化。  删除组stuff。groupdel 3. 用Linux-conf创建用户和组  进入X-Window图形界面。  打开控制面板,启动用户和组群管理子程序,在打开的界面中练习用户、组的设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值