linux经常管理与查看指令:ps、pstree、top、kill、jobs和nice

linux中进程管理(ps、top、pstree、pgrep、jobs、&、kill、fg) 进程管理一、查看控制进程1、ps查看静态进程统计信息(Processes Statistic)2、top查看进程动态信息3、pgrep查询进程信息4、pstree查看进程树、二、进程控制1、启动以及改变运行进程方式1)手动启动进程方式2)调度启动进程方式3)改变进程的运行方式(Ctrl+Z)4)查看后台的进程(jobs)5)将后台的进程恢复运行(fg)2、终止执行进程(kill、killall 和 pkill)1)使用 kill 命令终止进程2)使用 killall 命令终止进程3)使用 pkill 命令终 阅读详情

一、 进程的查看

不管在测试的时候还是在实际的生产环境中或者自己的使用过程中,难免遇到进程的一些异常,所以 Linux 为我们提供了一些工具可以查看进程的一些状态信息,我们可以通过 top 动态实时的查看进程的状态的已经系统的一些信息如 CPU、内存信息等等,我们同样可以通过 ps 来静态查看当前的进程信息,同时我们还可以使用 pstree 来查看当前活跃进程的树形结构

1.1 top 工具的使用

top 工具是我们常用的一个查看工具,能实时的查看我们系统的一些关键信息的变化,例如运行的进程中的实时变化:

top

实验楼

top 是一个在前台执行的程序,所以执行知道便在这样的一个交互界面,我们可以通过一些指令来做一些操作,筛选。首先我们先来了解一些显示了哪些信息

我们看到 top 显示的第一排,

内容解释
top表示当前程序的名称
11:05:18表示当前的系统的时间
up 8 days,17:12表示该机器已经启动了多长时间
1 user表示当前系统中只有一个用户
load average: 0.29,0.20,0.25分别对应1、5、15分钟内cpu的平均负载

load average 在 wikipedia 中的解释是 the system load is a measure of the amount of work that a computer system is doing 也就是对当前 CPU 工作量的度量,具体来说也就是指运行队列的平均长度,也就是等待CPU的平均进程数相关的一个计算值。

我们该如何看待这个load average 数据呢?

假设我们的系统是单CPU单内核的,把它比喻成是一条单向的桥,把CPU任务比作汽车。

  • load = 0 的时候意味着这个桥上并没有车,cpu 没有任何任务;
  • load < 1 的时候意味着桥上的车并不多,一切都还是很流畅的,cpu 的任务并不多,资源还很充足;
  • load = 1 的时候就意味着桥已经被车给沾满了,没有一点空隙,cpu 的已经在全力工作了,所有的资源都被用完了,当然还好,这还在能力范围之内,只是有点慢而已;
  • load > 1 的时候就意味着不仅仅是桥上已经被车占满了,就连桥外都被占满了,cpu 已经在全力的工作了,系统资源的用完了,但是还是有大量的进程在请求,在等待。若是这个值大于2,大于3,超过 CPU 工作能力的 2,3。而若是这个值 > 5 说明系统已经在超负荷运作了。【注释1】

这是单个 CPU 单核的情况,而实际生活中我们需要将得到的这个值除以我们的核数来看。我们可以通过一下的命令来查看 CPU 的个数与核心数

#查看物理CPU的个数
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l

#每个cpu的核心数
cat /proc/cpuinfo |grep "physical id"|grep "0"|wc -l

通过上面的指数我们可以得知 load 的临界值为 1 ,但是在实际生活中,比较有经验的运维或者系统管理员会将临界值定为0.7。这里的指数都是除以核心数以后的值,不要混淆了

  • 若是 load < 0.7 并不会去关注他;
  • 若是 0.7< load < 1 的时候我们就需要稍微关注一下了,虽然还可以应付但是这个值已经离临界不远了;
  • 若是 load = 1 的时候我们就需要警惕了,因为这个时候已经没有更多的资源的了,已经在全力以赴了;
  • 若是 load > 5 的时候系统已经快不行了,这个时候你需要加班解决问题了

通常我们都会先看 15 分钟的值来看这个大体的趋势,然后再看 5 分钟的值对比来看是否有下降的趋势。

查看 busybox 的代码可以知道,数据是每 5 秒钟就检查一次活跃的进程数,然后计算出该值,然后 load 从/proc/loadavg 中读取的。而这个 load 的值是如何计算的呢,这是 load 的计算的源码

#define FSHIFT      11          /* nr of bits of precision */
#define FIXED_1     (1<<FSHIFT) /* 1.0 as fixed-point(定点) */
#define LOAD_FREQ   (5*HZ)      /* 5 sec intervals,每隔5秒计算一次平均负载值 */
#define CALC_LOAD(load, exp, n)     \
         load *= exp;               \
         load += n*(FIXED_1 - exp); \
         load >>= FSHIFT;

unsigned long avenrun[3];

EXPORT_SYMBOL(avenrun);

/*
* calc_load - given tick count, update the avenrun load estimates.
* This is called while holding a write_lock on xtime_lock.
*/
static inline void calc_load(unsigned long ticks)
{
        unsigned long active_tasks; /* fixed-point */
        static int count = LOAD_FREQ;
        count -= ticks;
        if (count < 0) {
                count += LOAD_FREQ;
                active_tasks = count_active_tasks();
                CALC_LOAD(avenrun[0], EXP_1, active_tasks);
                CALC_LOAD(avenrun[1], EXP_5, active_tasks);
                CALC_LOAD(avenrun[2], EXP_15, active_tasks);
        }
}

有兴趣的朋友可以研究一下,是如何计算的。代码中的后面这部分相当于它的计算公式

我们回归正题,来看 top 的第二行数据,基本上第二行是进程的一个情况统计

内容解释
Tasks: 26 total进程总数
1 running1个正在运行的进程数
25 sleeping25个睡眠的进程数
0 stopped没有停止的进程数
0 zombie没有僵尸进程数

来看 top 的第三行数据,这一行基本上是 CPU 的一个使用情况的统计了

内容解释
Cpu(s): 1.0%us用户空间占用CPU百分比
1.0% sy内核空间占用CPU百分比
0.0%ni用户进程空间内改变过优先级的进程占用CPU百分比
97.9%id空闲CPU百分比
0.0%wa等待输入输出的CPU时间百分比
0.1%hi硬中断(Hardware IRQ)占用CPU的百分比
0.0%si软中断(Software IRQ)占用CPU的百分比
0.0%st(Steal time) 是当 hypervisor 服务另一个虚拟处理器的时候,虚拟 CPU 等待实际 CPU 的时间的百分比

CPU 利用率,是对一个时间段内 CPU 使用状况的统计,通过这个指标可以看出在某一个时间段内 CPU 被占用的情况,Load Average 是 CPU 的 Load,它所包含的信息不是 CPU 的使用率状况,而是在一段时间内 CPU 正在处理以及等待 CPU 处理的进程数情况统计信息,这两个指标并不一样。

来看 top 的第四行数据,这一行基本上是内存的一个使用情况的统计了

内容解释
8176740 total物理内存总量
8032104 used使用的物理内存总量
144636 free空闲内存总量
313088 buffers用作内核缓存的内存量

注意

系统的中可用的物理内存最大值并不是 free 这个单一的值,而是 free + buffers + swap 中的 cached 的和

来看 top 的第五行数据,这一行基本上是交换区的一个使用情况的统计了

内容解释
total交换区总量
used使用的交换区总量
free空闲交换区总量
cached缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖

在下面就是进程的一个情况了

列名解释
PID进程id
USER该进程的所属用户
PR该进程执行的优先级priority 值
NI该进程的 nice 值
VIRT该进程任务所使用的虚拟内存的总数
RES该进程所使用的物理内存数,也称之为驻留内存数
SHR该进程共享内存的大小
S该进程进程的状态: S=sleep R=running Z=zombie
%CPU该进程CPU的利用率
%MEM该进程内存的利用率
TIME+该进程活跃的总时间
COMMAND该进程运行的名字

注意

NICE 值叫做静态优先级,是用户空间的一个优先级值,其取值范围是-20至19。这个值越小,表示进程”优先级”越高,而值越大“优先级”越低。nice值中的 -20 到 19,中 -20 优先级最高, 0 是默认的值,而 19 优先级最低

PR 值表示 Priority 值叫动态优先级,是进程在内核中实际的优先级值,进程优先级的取值范围是通过一个宏定义的,这个宏的名称是MAX_PRIO,它的值为140。Linux实际上实现了140个优先级范围,取值范围是从0-139,这个值越小,优先级越高。而这其中的 0 - 99 是实时的值,而 100 - 139 是给用户的。

其中 PR 中的 100 to 139 值部分有这么一个对应 PR = 20 + (-20 to +19),这里的 -20 to +19 便是nice值,所以说两个虽然都是优先级,而且有千丝万缕的关系,但是他们的值,他们的作用范围并不相同

VIRT 任务所使用的虚拟内存的总数,其中包含所有的代码,数据,共享库和被换出 swap空间的页面等所占据空间的总数

在上文我们曾经说过 top 是一个前台程序,所以是一个可以交互的

常用交互命令解释
q退出程序
I切换显示平均负载和启动时间的信息
P根据CPU使用百分比大小进行排序
M根据驻留内存大小进行排序
i忽略闲置和僵死的进程,这是一个开关式命令
k终止一个进程,系统提示输入 PID 及发送的信号值。一般终止进程用15信号,不能正常结束则使用9信号。安全模式下该命令被屏蔽。

好好的利用 top 能够很有效的帮助我们观察到系统的瓶颈所在,或者是系统的问题所在

1.2 ps 工具的使用

ps 也是我们最常用的查看进程的工具之一,我们通过这样的一个命令来了解一下,他能给我带来哪些消息

ps aux

实验楼

ps axjf

实验楼

我们来总体了解下会出现哪些信息给我们,这些信息又代表着什么(更多的 keywords 大家可以通过man ps 了解)

内容解释
F进程的标志(process flags),当 flags 值为 1 则表示此子程序只是 fork 但没有执行 exec,为 4 表示此程序使用超级管理员 root 权限
USER进程的拥有用户
PID进程的ID
PPID其父进程的PID
SIDsession 的ID
TPGID前台进程组的ID
%CPU进程占用的CPU百分比
%MEM占用内存的百分比
NI进程的 NICE 值
VSZ进程使用虚拟内存大小
RSS驻留内存中页的大小
TTY终端ID
S or STAT进程状态
WCHAN正在等待的进程资源
START启动进程的时间
TIME进程消耗CPU的时间
COMMAND命令的名称和参数

TPGID栏写着-1的都是没有控制终端的进程,也就是守护进程

STAT表示进程的状态,而进程的状态有很多,如下表所示

状态解释
RRunning.运行中
SInterruptible Sleep.等待调用
DUninterruptible Sleep.不可终端睡眠
TStoped.暂停或者跟踪状态
XDead.即将被撤销
ZZombie.僵尸进程
WPaging.内存交换
N优先级低的进程
<优先级高的进程
s进程的领导者
L锁定状态
l多线程状态
+前台进程

其中的 D 是不能被终端睡眠的状态,处在这种状态的进程不接受外来的任何 signal,所以无法使用 kill 命令杀掉处于D状态的进程,无论是 kill,kill -9 还是 kill -15,一般处于这种状态可能是进程 IO 的时候出问题了。

ps 工具有许多的参数,下面给大家解释部分常用的参数

使用 -l 参数可以显示自己这次登陆的 bash 相关的进程信息罗列出来

ps -l

实验楼

相对来说我们更加常用下面这个命令,他将会罗列出所有的进程信息

ps aux

实验楼

若是查找其中的某个进程的话,我们还可以配合着 grep 和正则表达式一起使用

ps aux | grep zsh

实验楼

此外我们还可以查看时,将连同部分的进程呈树状显示出来

ps axjf

实验楼

当然如果你觉得使用这样的此时没有把你想要的信息放在一起,我们也可以是用这样的命令,来自定义我们所需要的参数显示

ps -afxo user,ppid,pid,pgid,command

实验楼

这是一个简单而又实用的工具,想要更灵活的使用,想要知道更多的参数我们可以使用 man 来获取更多相关的信息

1.3 pstree 工具的使用

通过 pstree 可以很直接的看到相同的进程数量,最主要的还是我们可以看到所有进程的之间的相关性。

pstree

实验楼

pstree -up

#参数选择:
#-A  :各程序树之间以 ASCII 字元來連接;
#-p  :同时列出每个 process 的 PID;
#-u  :同时列出每个 process 的所屬账户名称。

实验楼


二、进程的管理

 工作管理

bash(Bourne-Again shell)支持工作控制(job control),而sh(Bourne shell)并不支持。

并且每个终端或者说 bash 只能管理当前终端的中的 job,不能管理其他终端中的 job。比如我当前存在两个 bash 分别为 bash1、bash2,bash1 只能管理其自己里面的 job 并不能管理 bash2 里面的 job

我们都知道当一个进程在前台运作时我们可以用 ctrl + c 来终止它,但是若是在后台的话就不行了,并且在一个终端 bash 中只能管理当前 bash 里的 job.

我们可以通过 & 这个符号,让我们的命令在后台中运行

ls &

实验楼

图中所显示的 [1] 236分别是该工作的 job number 与该进程的 PID,而最后一行的 Done 表示该命令已经在后台执行完毕。

我们还可以通过 ctrl + z 使我们的当前工作停止并丢到后台中去

实验楼

被停止并放置在后台的工作我们可以使用这个命令来查看

jobs

实验楼

其中第一列显示的为被放置后台的工作的编号,而第二列的 + 表示最近被放置后台的工作,同时也表示预设的工作,也就是若是有什么针对后台的工作的操作,首先对预设的工作,- 表示倒数第二被放置后台的工作,倒数第三个以后都不会有这样的符号修饰,第三列表示它们的状态,而最后一列表示该进程执行的命令

我们可以通过这样的一个命令将后台的工作拿到前台来

#后面不加参数提取预设工作,加参数提取指定工作的编号
fg [%jobnumber]

实验楼

实验楼

之前我们通过 ctrl + z 使得工作停止放置在后台,若是我们想让其在后台运作我们就使用这样一个命令

#与fg类似,加参则指定,不加参则取预设
bg [%jobnumber]

实验楼

既然有方法将被放置在后台的工作提至前台或者让它从停止到继续运行在后台,当然也有方法删除一个工作,或者重启等等

#kill的使用格式如下
kill -signal %jobnumber

#signal从1-64个信号值可以选择,可以这样查看
kill -l

其中常用的有这些信号值

信号值作用
-1重新读取参数运行,类似与restart
-2如同 ctrl+c 的操作退出
-9强制终止该任务
-15正常的方式终止该任务

实验楼

注意

若是在使用kill+信号值然后直接加数字的话,这个数字代表的是 pid,你将会对 pid 对应的进程做操作

若是在使用kill+信号值然后%jobnumber,这时所操作的对象才是 job,这个数字就是就当前 bash 中后台的运行的 job 的 ID


2.1 kill 命令的掌握

上个实验中我们讲诉了进程之间是如何衍生,之间又有什么相关性,我们来回顾一下,当一个进程结束的时候或者要异常结束的时候,会向其父进程返回一个或者接收一个 SIGHUP 信号而做出的结束进程或者其他的操作,这个 SIGHUP 信号不仅可以由系统发送,我们可以使用 kill 来发送这个信号来操作进程的结束或者重启等等。

上节课程我们使用 kill 命令来管理我们的一些 job,这节课我们将尝试用 kill 来操作下一些不属于 job 范畴的进程,直接对 pid 下手

#首先我们使用图形界面打开了 gedit、gvim,用 ps 可以查看到
ps aux

#使用9这个信号强制结束 gedit 进程
kill -9 1608

#我们在查找这个进程的时候就找不到了
ps aux | grep gedit

实验楼

实验楼

2.2 进程的执行顺序

我们在是使用 ps 命令的时候我们可以看到大部分的进程都是处于休眠的状态,如果这些进程都被唤醒,那么该谁最先享受 CPU 的服务,后面的进程又该是一个什么样的顺序呢?进程调度的队列又该如何去排列呢?

当然就是靠该进程的优先级值来判定进程调度的优先级,而优先级的值就是上文所提到的 PR 与 nice 来控制与体现了

而 nice 的值我们是可以通过 nice 命令来修改的,而需要注意的是 nice 值可以调整的范围是 -20 ~ 19,其中 root 有着至高无上的权力,既可以调整自己的进程也可以调整其他用户的程序,并且是所有的值都可以用,而普通用户只可以调制属于自己的进程,并且其使用的范围只能是 0 ~ 19,因为系统为了避免一般用户抢占系统资源而设置的一个限制

#这个实验在环境中无法做,因为权限不够,可以自己在本地尝试

#打开一个程序放在后台,或者用图形界面打开
nice -n -5 vim &

#用 ps 查看其优先级
ps -afxo user,ppid,pid,stat,pri,ni,time,command | grep vim

我们还可以用 renice 来修改已经存在的进程的优先级,同样因为权限的原因在实验环境中无法尝试

renice -5 pid

实验总结

通过本实验我们学会了进程的查看命令 ps,pstree,top,jobs以及使用这些命令是所得到的信息的含义,从而获取我们想要,我们需要的信息,同是我们学会了进程的管理命令 kill,nice,renice

参考资料

注释1: 该例子参考于http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages


Linux进程管理三剑客:ps、kill、nice原理与实战 Linux进程管理是系统运维和性能调优的核心基础,其本质围绕进程生命周期、调度策略与信号通信三大机制展开。ps命令并非实时监控工具,而是对/proc文件系统的快照读取;kill的本质是向进程发送信号,SIGTERM用于优雅终止,SIGKILL则强制中止且不可捕获;nice值通过CFS调度器影响CPU时间片分配权重,仅在CPU竞争时生效。这些机制共同构成进程态势感知与动态干预能力,广泛应用于服务故障定位、资源争用治理、后台任务管控等典型场景。本文深入解析ps/kill/nice的内核原理与工程实践,覆盖状态识 阅读详情

相关推荐

Python实战:高效稳定采集微信视频号评论的API爬虫方案

网络爬虫是数据采集领域的核心技术,其原理是通过程序模拟浏览器行为,向目标服务器发送HTTP请求并解析响应数据,从而自动化获取网页或接口中的信息。这项技术的核心价值在于能够高效、批量化地收集公开数据,为市场分析、舆情监控和竞品研究提供数据基础。在社交媒体分析、电商价格监控等应用场景中,爬虫技术尤为重要。针对微信视频号这类动态加载的复杂应用,传统的GUI自动化工具(如影刀RPA)常面临性能瓶颈和风控挑战。本文聚焦于通过Python实现**无感采集**,直接与后端**API接口**交互,构建稳定高效的评论数据采集

weixin_30899023的博客 328

Linux——Process(进程)相关命令——ps、nice、kill、bg&fg

文章目录Process简单认识几个关于Linux Process的重要角色细心地,有个问题:psnicekillbg&fg Process简单认识 进程就是被执行的程序。 每个进程都是一个运行的实体, 都有自己的地址空间,并占用一定的系统资源。 口说话地说: 就好比, 写了一份活动策划书(程序代码), 然后 ,让相关人员(比如操作系统) 按照策划书,有条不紊地举行活动(进程) 换专业一点点的说: 程序,是人类用编程语言编写的,可实现一定功能,并且可执行的代码集合。 而进程是正在执行中的程序

m0_46156900的博客 1668

单相PWM整流器的数学模型、工作原理

单相PWM整流器的数学模型、工作原理

weixin_58670090的博客 1万+

Linux基础命令-pstree树状显示进程信息

pstree命令来自于英文词组“Process tree”的缩写,其功能是用于以树状图形式显示进程信息,帮助管理员更好的了解进程间的关系。Linux系统中常用ps命令查看进程状态信息,但是却无法了解进程之前的依赖关系,哪个是父进程,哪个是子进程都可以通过pstree进行查看。

不吃羊的小灰灰博客 6441

为ESXI Host添加v3700 FC存储

物理环境: ESXI Host version 5.1.0 Brocade SAN Switch v3700 Storage 存储和ESXI Host分别用光纤线连接在SAN交换机上 1.查询ESXI Host 的WWN号: 2. SAN交换机上查询存储的WWPN号 SAN交换机: 3.建立zone,添加到cfg文件中 brocade8Gb

haoshuwei531024的专栏 7562

使用LSTM(长短期记忆)模型处理文本数据的典型流程

对于序列到序列的任务(如机器翻译),可以使用LSTM的隐状态来生成目标序列。这些向量捕获了词之间的语义关系,每个词都被表示为一个高维空间中的点,语义上相似的词在向量空间中彼此靠近。这通常是通过创建一个词汇表(vocabulary)来实现的,词汇表中的每个词都会被分配一个唯一的数字ID。:由于LSTM等循环神经网络(RNN)需要固定长度的输入,所以需要将不同长度的句子填充到相同的长度。由于计算机不能直接理解连续的文本,第一步是将文本分割成独立的词或标记(token)。:将词嵌入作为输入传递给LSTM模型。

YHKKun的博客 2500

pstree(1) command

pstree(process tree)显示进程树。pstree 将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本进程为根 (root)。如果有指定使用者 id,则树状图只会显示该使用者所拥有的进程。使用 ps 命令得到的数据精确,但数据庞大,这一点对掌握系统整体概况来说是不容易的。pstree 命令正好可以弥补这个缺憾。它能将当前的执行程序以树状结构显示。pstree命令支持指定特定程序(PID)或使用者(USER)作为显示的起始。

Doublelv 的博客专栏。 5573

LLC 谐振变换器开发设计1

本文档详细介绍了基于DSP28335的LLC谐振变换器开发设计。系统采用频率调制(FM)控制方式,实现高效率、高功率密度的隔离型DC/DC变换。文档阐述了LLC拓扑结构和工作原理,给出了谐振频率、品质因数等关键参数的计算公式。硬件设计包括功率器件选型和采样电路实现,软件部分提供了DSP28335的核心控制算法和代码示例,涵盖频率转换、PI控制和PWM生成。系统还设计了启动策略和保护机制,确保可靠运行。该设计实现了主开关零电压开通和低纹波输出特性。

331

【linux命令讲解大全】174.介绍Linux命令pstree

pstree是Linux命令中一款用于展示进程之间派生关系的工具,它通过树状图的方式来直观呈现进程之间的关联。本文介绍了pstree命令的语法和选项,并提供了实例演示,其中包括如何获取SSH会话的PID等,希望对您在Linux系统上进行进程管理时有所帮助。

全栈若城,专注知识分享 7457

matlab之作图设置游标的精度

matlab画出的figure游标的精度往往是固定的,这就对我们的调试和查看数据造成了不便。 那么怎么修改游标的精度呢? 首先,获取游标dcm_obj = datacursormode(gcf);然后对游标的精度进行设置:set(dcm_obj,'UpdateFcn',@NewCallback)这个NewCallback是什么东西呢?这是一个可以返回游标精度的函数,具体内容如下:function

落日之城 8959

GPU硬件架构与微架构深度解析34-GPU安全架构深度解析

现代GPU不仅是图形处理器,更是高性能计算平台,安全架构设计至关重要。内存加密- 保护数据在传输和存储时的安全安全启动- 确保固件和软件的完整性隔离机制- 防止不同应用间的数据泄露密钥管理- 安全存储和处理加密密钥。

2301_79143213的博客 99

Linux命令(42)之pstree

Linux命令之pstree介绍

z19861216的博客 1310

基于 SoC 的卷积神经网络车牌识别系统设计(1)引言

通过 CPU 软核 IP 在纯 FPGA 平台上构建一个 AI SoC 卷积神经网络车牌识别系统,其中,缩放、填充层、卷积层、ReLU、池化层、全连接层 IP 都是 Verilog 设计的,同时集成了各种高性能的 IP。这是最具挑战性的 AI SoC 芯片设计项目,集成了 Python 卷积神经网络代码、Verilog 卷积神经网络硬件设计、ARM SoC 设计、ARM 与 FPGA 的交叉编译流程等等。这不仅是科研学习、集创竞赛、秋招求职的一个极具优势的精彩项目,也是目前最火热的芯片行业之中的一个...

新芯设计的博客 3780

kill linux 进程树,linux-进程管理,ps,pstree,nice,top,vmstat,kill,jobs,fg,bg

进程及作业管理进程状态stoped:停止ready:就绪executing:正在运行zombie:僵尸Uninterruptible sleep: 不可中断的睡眠Interruptible sleep:可中断睡眠kernel:init:第一个进程,所有进程的父进程pstree:查看进程树[root@localhost ~]# pstreeinit─┬─NetworkManager─┬─dhclie...

weixin_32820311的博客 381

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

麒麟Linux进程管理全攻略:从ps、top到kill的实战技巧

进程是操作系统资源分配和调度的基本单位,理解进程管理是掌握Linux系统运维的核心。其原理在于操作系统通过进程控制块(PCB)来跟踪和管理每个运行中的程序实例。掌握进程管理技术对于系统稳定性、性能调优和故障排查具有重要价值,尤其在服务器运维、应用部署和性能监控等场景中不可或缺。通过ps、top等命令进行观测,结合lsof、pstree深入诊断,最终使用kill、nice等命令实施精准控制,构成了完整的进程管理闭环。本文以麒麟操作系统为例,详解包括进程状态分析、资源监控、僵尸进程处理等实战技巧,帮助读者构建从

weixin_30755393的博客 603

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

大学生笔记分享:Linux 进程与服务管理

提示:以下是本篇文章正文内容,下面案例可供参考程序(Program):存放在磁盘上的可执行文件,是静态的代码和数据集合。进程(Process):程序被加载到内存中运行的实例,是动态的、有生命周期的。系统会为每个进程分配独立的内存空间、文件描述符、PID 等资源。简单理解:程序是硬盘上的.exe文件,进程是双击运行后在内存里跑的那个任务。PID=1 的进程是什么?CentOS 7+ 是systemd,老版本是init。它是所有进程的祖先。僵尸进程怎么清理?不能直接 kill 僵尸进程,它已经死了。

2601_96680840的博客 744

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Linux实验day06-进程的分类和各状态之间的转换、进程查看命令ps、top、w和pstree的常见用法和选项、进程管理命令kill、pkill、killall、nice、renice命令

当进程的时间片用完或更高优先级的进程需要执行时,当前运行的进程会被放回就绪队列。父进程尚未通过wait()系统调用回收子进程资源,子进程处于僵尸状态。进程等待的事件发生(如I/O操作完成),进程被唤醒,回到就绪队列。父进程调用wait()系统调用,回收僵尸进程的资源,进程彻底释放。进程等待某个资源或事件(如等待I/O操作完成),进入阻塞状态。用户进程、系统进程、内核进程、僵尸进程、孤儿进程。进程执行完毕,进入退出状态,等待父进程回收。语法:fg %作业编号。语法:bg %作业编号。

2301_76648183的博客 711

Linux系统进程简介-ps、nice、jobs、bg、fg、kill、top、pstree、systemctl命令的使用

系统进程: 1.什么是进程? 程序放置在储存媒体中(如硬盘、光盘、软盘、磁带等),为实体文件的形态存在。 进程:程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是一个正在运行中的程序。 进程就是系统未完成并且正在进行的工作。 2.进程状态 R(running):该程序正在运行中。 S(sleepi...

weixin_44214830的博客 851

Linux——进程管理

前台和后台运行作业作业可以在前台,也可以在后台运行,在同时间只能有一个作业在前台运行。程序只是一个静态的指令集合,不占系统的运行资源:而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。进程:程序的动态执行过程;为了完成这些任务,系统上同时运行着多个进程,正在执行的一个或多个相关进程称为一个作业。进程:在CPU及内存中运行的程序代码 是动态执行的代码 父、子进程:每个进程可以创建一个或多个进程。

weixin_63001635的博客 1147

Linux操作系统进程与计划任务管理

Linux进程与计划任务管理是系统运维的核心技能,进程管理需熟练掌握ps、top、kill等命令,能够快速定位并解决进程异常、资源占用过高等问题;计划任务管理需灵活运用at和crontab命令,实现自动化运维,提升工作效率。在实际应用中,需结合业务场景合理配置进程优先级和计划任务,同时做好日志记录与问题排查,确保系统稳定、高效运行。

gmx66666的博客 915

Linux系统基础8:进程管理命令

Linux进程管理命令新手超详细教程 本文从基础概念到实战操作,系统讲解Linux进程管理核心命令,帮助新手快速掌握: 一、基础概念 程序与进程区别 进程核心属性:PID、PPID、USER、STATE等 二、常用命令详解 静态查看命令: ps aux:查看详细进程信息 ps -ef:查看父子进程关系 pstree:树形展示进程结构 pgrep:快速查找PID 动态监控工具: top:实时系统监控(含界面解读) htop:增强版top(需安装) 三、进程控制命令 kill:信号控制进程(含3种常用信号) k

zhanghaha1314的博客 343

Liunx进程与计划管理

进程(Process)是正在运行的程序的实例,是操作系统进行资源分配和调度的基本单位。程序:保存在硬盘上的可执行文件(如/bin/lsnginx),是静态的代码和数据。进程:程序被加载到内存中运行后形成的动态实体,拥有自己的内存空间、PID、运行状态,系统会为其分配 CPU、内存等资源。举个例子:执行ls命令时,系统会将/bin/ls程序加载到内存,创建一个临时进程,执行完ls后进程立即结束,资源被释放。

zhangyahua1的博客 613

深入理解 Linux 进程原理与全方位管理实践

本文深入解析了Linux进程管理的核心概念与技术。首先阐述了进程与程序的区别,强调进程作为动态执行实体的特性。重点讲解了前台进程与后台进程的管理方法,包括通过&符号启动后台任务、Ctrl+Z暂停进程、bg/fg命令切换前后台等实用技巧。文章还介绍了Shell作业控制的关键命令(jobs、kill %n、disown等),并提供了典型操作示例。这些知识对系统管理员和开发者优化任务调度、提高终端操作效率具有重要意义,是Linux系统管理的必备技能。

vortex5的博客 1176

Linux 进程和计划任务管理

进程是 Linux 系统中正在运行的程序实例,由内核调度、分配系统资源(CPU / 内存 / IO),分为(与终端关联,需手动交互)和(脱离终端,后台运行,适合耗时任务)。进程的核心属性:PID(进程 ID,唯一标识)、PPID(父进程 ID)、UID(运行用户 ID)、状态(运行 / 睡眠 / 停止 / 僵尸)。

2601_94969911的博客 590
上一篇: sed
下一篇: git实战教程1-git介绍
Watson2016
博客等级 码龄11年 342粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值