Linux进程管理

systemd是Linux系统中最原始的进程,该进程在系统启动时启动,所有的其他进程都是其后代,在系统中通常使用systemctl命令工具对进程进行管理,使用方式是systemctl 选项 命令。

查看进程

使用ps 选项命令实现,详细选项如下:

复制代码
-a:列出当前终端所有的进程。不显示系统进程
-e:列出所有的进程,等同于-A 
-f:显示不包含资源使用率的相关信息
‐H:以进程层级格式显示进程相关信息
-w:显示加宽可以显示较多的信息
-u:显示较详细的信息
-x:显示其他使用者的行程
-l:使用详细格式显示程序状态

也可以使用--sort=给输出排序,-c 希望查看的内容选项过滤信息,使用yum -y install psmisc安装服务后pstree树状显示进程,展示详细信息示例如下:

该信息分别包含:用户名,进程号pid,cpu占用率,内存占用率,占用虚拟内存大小,占用的常驻内存大小,执行的终端编号,该进程的状态,进程开始时间,使用时间,所执行的命令。STAT表示的状态有以下几种:

复制代码
D: 无法中断的休眠状态 ,将一直等待事件的发生或等待某种系统资源
R: 正在执行中
S: 可中断状态
T: 暂停执行
Z: 不存在但暂时无法消除,也叫僵尸进程
每个进程在运行结束后都会处于僵死状态,等待父进程调用进而释放系统资源,处于该状态的进程已经运行结束,但是它的父进程还没有释放其系统资源
W: 没有足够的内存可分配
<: 高优先序的进程
N: 低优先序的进程
+:前台进程
l:多线程进程
s:主进程(先导进程)

常用组合有ps aux以用户为中心组织显示进程信息,ps -ef显示所有进程完整信息,ps -efH以层级格式查看进程详细信息。

也可以使用top命令实时查看进程,通过-d指定刷新频率,-p指定进程号,-u指定用户。

删除进程

通过kill -l 信号编号 程序或kill -s 信号名称 程序pid命令实现,常用信号如下:

复制代码
1	SIGHUP	重新加载配置
2	SIGINT	键盘中断^C
3	SIGQUIT	键盘退出
9	SIGKILL	强制终止
15	SIGTERM	终止(正常结束),缺省信号
18	SIGCONT	继续
19	SIGSTOP	停止
20	SIGTSTP	暂停^Z

也可以使用pkill 选项 名称的方式杀死进程,该方法会杀死符合名称的所有进程,选项详细为:

复制代码
name: 进程名
-u:指定用户名
-t:指定终端

进程优先级

目前cpu都以时间片轮转法工作,所以需要调整进程优先级来使得某些重要进程被最快解决,Linux中进程的优先级分为两种,实时和静态,系统通过量化的nice值对进程优先级进行管理。

实时优先级0-99.,数字越小优先级越高,

静态优先级,0-139,同样的数字越小优先级越高。

具体优先级可分为NI和PR,其中NI是给用户修改的,取值为-20---19,PR是内核动态调整动态的参照,取值为-99---39。

查看进程优先级

可以使用ps -l命令输出进程详细信息,其中包含NI和PR优先级内容,也可以使用top命令查看。

修改进程优先级

可以使用nice -n 优先级 程序在程序启动时指定优先级,

也可以使用renice 优先级 程序pid调整已有优先级。

后台任务

一些执行起来需要占用终端,和驻留监听等任务都适合放在后台运行,可以通过在命令后加 &的方式实现,如ping baidu.com & ,在任务执行时按下ctrl z会使任务暂停,该任务同样进入后台,交互式任务无法进入后台,进入后直接停止。

查看后台任务使用jobs 命令实现,输出中在前的序号为工作号,要将任务拿回到前台使用fg % 工作号实现,示例如下:

如果是暂停的任务,恢复到前台还会暂停,针对这种任务需要使用bg % 工作号的方法让其恢复运行。

后台任务是基于终端的,远程连接断开后自动停止,如果要让后台任务独立于连接,需要使用nohup 命令&方法,此时该命令就算在连接断开后还会在系统上运行,如果将后台命令加入/etc/rc.local文件,系统启动时就会自动执行。

总结

该部分内容不多,学习了在操作系统中查看删除进程的方法,以及如何调整进程优先级和前后台切换的内容,主要使用ps、top、kill、nice、job命令,为什么没说进程创建呢?因为我们执行程序的过程就是创建进程,这部分不用单独学习。

相关推荐
小HANN12 分钟前
华为云企业网站上云实战|从零搭建高可用WordPress(ECS+RDS+ELB+弹性伸缩+云监控全流程落地)
linux·运维·服务器·经验分享
eBest数字化转型方案34 分钟前
经销商对账自动化:从五本账模型到票据识别的工程实现
运维·自动化
Elastic 中国社区官方博客1 小时前
AWS 自动化根因分析:从 CloudWatch 告警到完成故障诊断,仅需 36 秒
大数据·运维·elasticsearch·自动化·aws
susplus1 小时前
【IMX6ULL Linux系统移植】SD卡分区 | uboot详解
linux·arm·u-boot
雪雪爱冲浪1 小时前
ISP代理与住宅代理选型对比:从原理到实战
服务器·网络·网络协议·tcp/ip·接口隔离原则
@三十一Y1 小时前
Linux:实现简易的shell
linux
智能直播1 小时前
OpenGL驱动的实时绿幕抠图:GPU着色器色度键控原理
运维·服务器
FITA阿泽要努力1 小时前
第1周·第2讲|一道综合代码推演
服务器·前端·python·agent.
HUIBUR科技2 小时前
多系统整合不必搭建中台:AI中枢带来轻量化数字化集成
大数据·运维·人工智能
小羊没烦恼!2 小时前
关于大型asp.net应用系统的架构-架构的选择
java·服务器·开发语言·前端·c#