当前位置: 首页 > web >正文

Linux进程管理

Linux 进程管理是系统管理员和开发人员必须掌握的核心技能之一。以下是一些常用的进程管理命令和技巧

1. 进程是程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位。

2. 进程包含了程序执行所需的各种资源,如内存空间、文件描述符等。

3. 每个进程都有自己独立的内存空间和系统资源,不同进程之间相互隔离。

4. 程序是静态的代码文件,进程是指程序运行时的形态(调用系统资源将静态的代码文件运行起来)。

5. 进程是程序的一个副本。

6. 进程是有生命周期的(准备期,运行期,终止期);生命周期通常从安装开始,到最终被用户卸载结束。在这个过程中,它会经历不同的阶段,包括引导、运行、维护和再次引导

查看进程

进程的状态

Linux进程可以处于以下几种状态之一:

  • 运行(Running):进程正在CPU上执行。
  • 就绪(Ready):进程已准备好运行,等待CPU调度。
  • 等待(Waiting):进程在等待某些事件(如I/O操作)完成。
  • 停止(Stopped):进程被暂停,通常是由于收到信号(如SIGSTOP)。
  • 僵尸(Zombie):进程已终止,但其父进程尚未调用wait()waitpid()来获取其退出状态。

进程间通信

Linux提供了多种进程间通信(IPC)机制,包括:

  • 管道(Pipe):用于父子进程之间的通信。
  • 消息队列(Message Queue):允许进程通过消息进行通信。
  • 共享内存(Shared Memory):允许多个进程共享一块内存区域。
  • 信号(Signal):用于进程间的异步通知。
  • 套接字(Socket):用于网络通信或本地进程间通信。

top数列的详解

1.PID:       进程ID,唯一标识一个进程的编号。

2.USER:   进程所有者的用户名。

3.PR:        进程的优先级。

4.NI:          nice值,用于调整进程的优先级。默认值是0,范围是-20到19。

5.VIRT:      进程使用的虚拟内存总量,单位是KB。

6.RES:      进程当前使用的、驻留在物理内存中的大小,单位是KB。

7.SHR:      共享内存大小,单位是KB。

8.S:           进程的状态。常见的状态有R(运行中)、S(休眠)、Z(僵尸进程)等。

9.%CPU:   该进程占用的CPU使用率。

10.%MEM:该进程占用的物理内存使用率。

11.TIME+: 该进程启动后总共运行的时间,单位是分钟:秒。

12.COMMAND: 启动进程的命令名称或命令行。

4.结束进程
使用kill命令:
kill 

如果进程不响应,可以使用-9选项强制结束:

kill -9 

使用pkill或killall命令通过进程名称结束进程:
pkill [进程名称]

killall 

如果你需要结束一个子进程,可以使用pgrep来查找进程ID,然后用kill或pkill结束它:
pgrep -f [子进程名称]

kill

使用xkill命令来结束图形界面程序:
首先运行xkill,然后点击你想要结束的程序的窗口,它会发送SIGTERM信号。

如果你需要结束一个会话中的所有进程,可以使用kill命令加上-HUP选项:
kill -HUP 

5.工作管理命令
 &把进程放入后台      
 jobs -l        显示后台工作程序
 fg %工作号    将后台暂停的工作恢复到前台执行
 bg %工作号         后台恢复执行的命令

6.定时任务
查看crontab服务状态:systemctl  status crond

ps

---进程状态查看

ps具有三种命令的执行风格 

unix  //ps命令的参数跟- 例如 ps -e ,ps -o

bsd  //ps命令不用跟- ,例如 ps ax ,ps aux

GUN //长参数

//与终端相关的进程

//与终端无关的进程

ps ax 

//查看所有进程信息

u

//使用用户信息归类的查看方式

f

//进程层级关系

o

//显示指定参数

-e

//显示所有进程,相当于bsd风格的ps ax

-f

//显示信息的完整格式

-H

//显示进程的层级结构,相当于bsd风格的ps f,与之不同的是使用缩进

-o

//与bsd风格的ps o 作用一摸一样,显示指定参数

--sort=

//对进程进行排序 ,=后面跟的是依据什么参数继续排序,=后跟“-”进行倒序

pgrep

//进程过滤

pgrep参数
-u

//u 后面跟所要过滤出来进程的uid

-U 

//U 后面跟的是进程名

-t

//tty显示指定终端进程、

-l

//显示进程名称

-a

//显示进程的完整名称

-P

//显示进程的子进程

pidof

pidof vim

//查看vim的pid

top

//动态进程查看

op参数
-d

//指定刷新频率

top -d 0.1 //默认为3s

-n

//指定显示的批次数量,次数结束就不刷新

top -d 1 -n 2 //在刷新频率为1s/次的情况下,刷新两次就不刷新

-b

//不显示系统信息,只显示进程信息

top -b

6.定时任务

查看crontab服务状态:systemctl  status crond

开启定时服务:   systemctl restart crond

语法: crontab [选项]

crontab -e         进入crontab编辑界面。会打开vim编辑

-e    编辑crontab定时任务
-l     查询crontab任务
-r     删除当前用户所有的crontab任务

* * * * *

没颗星星的顺序:分 时 日 月 周

分钟,可以是从0到59之间的任何整数。
小时,可以是从0到23之间的任何整数。
日期,可以是从1到31之间的任何整数。
月份,可以是从1到12之间的任何整数。
星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:

(*):代表所有可能的值,例如月份字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
(,):可以用逗号隔开的值指定一个列表范围
(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
(/):可以用正斜线指定时间的间隔频率,正斜线可以和星号一起使用,例如*/10,如果用在分钟字段,表示每十分钟执行一次也可以与其他符号配用

http://www.xdnf.cn/news/5150.html

相关文章:

  • journalctl使用
  • 网络地址转换之SNAT和DNAT
  • 《自动驾驶封闭测试场地建设技术要求》 GB/T 43119-2023——解读
  • Web3 学习全流程攻略
  • 用AI写简历是否可行?
  • MacOS 用brew 安装、配置、启动Redis
  • 低成本自动化改造技术锚点深度解析
  • L48.【LeetCode题解】904. 水果成篮
  • 《 指针变量的创建:初探内存世界的钥匙》
  • 【技巧】如何把win10 wsl的安装目录从c盘迁移到d盘
  • 【Gradio】helloworld程序
  • 嵌入式开发学习(第二阶段 C语言基础)
  • 随笔-近况
  • 插槽、生命周期
  • QWindowkit 实现无边框,阴影支持系统边栏缩放等功能
  • 深入理解C/C++内存管理:从基础到高级优化实践
  • 2025年数维杯C题数据收集方式分享
  • Vue3 路由配置与跳转传参完整指南
  • 二分系列题
  • 【PhysUnits】3.3 SI 基础量纲单位(units/base.rs)
  • 深入理解 JavaScript 对象与属性控制
  • 少儿编程机构用的教务系统
  • AT9880B北斗单模卫星定位SOC芯片
  • 问题五、扩展模板生成器
  • 【NextPilot日志移植】Logger::run()主循环解析
  • 图像配准简单概述
  • 日常知识点之随手问题整理(思考单播,组播,广播哪个更省带宽)
  • MySQL初阶:数据库约束和表的设计
  • Linux基础(关于进程相关命令)
  • WPDRRC 模型:构建动态闭环的信息安全防御体系