最新资讯

  • 【linux】linux进程概念(三)(进程状态,僵尸进程,孤儿进程,进程优先级)

【linux】linux进程概念(三)(进程状态,僵尸进程,孤儿进程,进程优先级)

2025-05-21 17:01:00 0 阅读

小编个人主页详情<—请点击
小编个人gitee代码仓库<—请点击
linux系列专栏<—请点击
倘若命中无此运,孤身亦可登昆仑,送给屏幕面前的读者朋友们和小编自己!


目录

    • 前言
    • 一、操作系统学科上的进程状态
      • 运行状态
      • 阻塞状态
      • 挂起状态
    • 二、linux中对应的进程状态
      • R运行状态
      • S睡眠状态
      • D磁盘休眠状态
      • T停止状态
    • 三、僵尸进程(Z僵尸状态)
    • 四、孤儿进程
      • 查看1号进程
    • 五、批量化操作
    • 六、进程优先级
      • 基本概念
      • 如何调整优先级
        • PRI和NI
        • 具体调整优先级
          • 使用nice和renice
          • 使用top
    • 总结


前言

【linux】linux进程概念(二)——书接上文 详情请点击<——
本文由小编为大家介绍——【linux】linux进程概念(三)

本文的讲解是基于linux进程概念(二)的基础上进行讲解,读者友友在阅读本文前请先阅读linux进程概念(二),即点击后面的蓝色字体链接进行阅读 详情请点击<——


一、操作系统学科上的进程状态


上述为操作系统学科上的进程状态,这里小编仅针对进程状态特定的介绍一下运行,阻塞,挂起三种状态

运行状态

  1. 一个CPU对应一个运行队列,这个运行队列的结构体中有两个进程控制块PCB的指针,指向PCB队列的头和尾,
  2. 这个运行队列其实是大量的进程在排队,排队其实是进程的PCB去排队,PCB中会使用指针指向其对应进程的代码和数据,虽然名称叫做运行队列但并不是所有的进程都正在运行,运行指的是处于运行队列中的进程已经准备好可以被调度器随时进行调度去运行
  3. 处于队列头上的PCB会被优先调度,当头部的进程PCB被调度到CPU上运行片刻后会重新被调度器拿下来放到队列的尾上继续排队,这个把大量进程从CPU拿上去,放下来的动作叫做进程切换
  4. 我们知道CPU的运行速度是非常快的,运行速度是纳秒级别,不能以人的常规思维去看待CPU的运行速度,以我们的电脑为例,上面可以同时运行许多应用软件,例如网易云,浏览器,画图等,这些软件的运行其实就是进程的运行,我们人的肉眼看到这些进程在同时运行,给我们一种错觉是认为这些进程是在CPU上同时跑的
  5. 事实其实不是这样的,由于CPU的运行速度非常快,进程是一个一个从进程队列的头上被调度器调度到CPU上去运行的,运行片刻后就被拿下来放到运行队列的尾继续排队,即CPU同一时刻之只能执行一个进程,CPU的运行速度非常快,同时在进程PCB中还有时间片信息,这个时间片限定了进程在CPU上执行的时间,例如时间片的时间对应的是10ms,所以不可能出现一个进程一直在占用CPU的资源去执行直到进程的结束,在这一个时间段内,由于CPU的运行速度非常快,运行队列经过调度器调度会被CPU反复循环跑上N次,即出现了在一个时间段内,所有进程的代码都被执行,这个过程叫做并发执行
  6. 处于运行队列的进程是运行态,简称R(run)状态

阻塞状态

  1. 我们知道计算机的组成中有各种设备,即外设,操作系统是一款进行软硬件资源管理的软件,那么其对于对于设备的管理是采用的先描述再组织,即使用DCB设备控制块strcut dev对每一个设备进行描述为DCB设备控制块的对象,然后再使用一定的数据结构将这些对象链接起来,例如使用单链表将这些对象进行链接便于进行管理
  2. 同时在这些DCB设备控制块中有PCB结构体指针,当进程需要访问外设例如键盘时,键盘并没有准备好,这里指的是用户没有敲键盘输入数据,即此时键盘的状态是未准备好,即关闭状态,那么此时进程由于要从键盘中读取数据就只能等待,那么进程控制块PCB就会被链接到DCB中的进程控制块PCB指针上,形成队列,并且在操作系统学科上给这个队列起名阻塞队列,当这个进程在等待时,如果接下来还有进程也需要访问键盘,读取键盘的数据,就只能等待,即链接到阻塞进程最后一个进程的后面继续进行等待,那么此时阻塞队列中的进程的状态就为阻塞状态

挂起状态

  1. 在某些情况下,当操作系统内部的内存资源严重不足的时候,因为操作系统是款进行软硬件资源管理的软件,它要对上提供良好的环境,这个良好指的是安全,稳定,高效,所以当内存严重不足的时候,操作系统必须节省出内存,保证程序的正常运行
  2. 那么如何节省呢?由于计算机存在各种设备,即外设,在计算机上的操作大多数都要转化为对某种外设的访问,外设不一定准备好,即外设的状态不一定打开,那么也就会出现大量进程排队等待外设的情况,即有相当多的进程处于阻塞状态,操作系统就会从处于阻塞状态的进程下手
  3. 通俗来讲,一个已经加载到内存中的程序叫做进程,细致来讲,那么进程是由内核数据结构PCB和对应的代码和数据组成,那么一个进程存在,其对应的代码和数据已经被加载到了内存,这个代码和数据要占用一定的内存,当存在大量的进程,那么就会有大量的内存和数据被加载到内存中,同时还会有大量的进程处于阻塞状态,阻塞状态不同于运行状态,阻塞状态是进程正在等待,这个等待的过程其实仅仅让进程的PCB进行等待即可,因为进程当前处于阻塞状态,没有办法从外设中读取数据,即无法运行,所以即使代码和数据不在内存中也没有关系,磁盘的空间相比较于内存非常大,那么操作系统会将处于阻塞状态进程的代码和数据放到磁盘的交换区,这个过程叫做换出,也就是进程的挂起,那么进程不会一直处于阻塞状态,外设也有可以进行读取数据的状态,即打开状态,那么进程等待结束,可以从外设中进行读取数据,那么此时操作系统会将处于磁盘中进程的对应的代码和数据拿回来,即换入,进程那么就可以从外设中读取数据,将进程链入CPU的运行队列中,此时进程处于运行状态,就可以正常运行了
  4. 这种操作系统的内部资源严重不足的情况一般比较少,所以进程的挂起并不是都会有的,只有当操作系统内部的内存资源严重不足的时候,操作系统才会将进程挂起,并且挂起还会有其它形式其它触发条件,例如开发人员调试需求,系统管理操作,进程优先级策略等

二、linux中对应的进程状态

//linux源代码如下
static const char * const task_state_array[] = {
"R (running)"     //运行
"S (sleeping)"    //睡眠
"D (disk sleep)"  //深度睡眠
"T (stopped)"     //停止
"t (tracing stop)"//追踪停止
"X (dead)"        //死亡
"Z (zombie)",     //僵尸
};

Z死亡状态:这个状态只是一个返回状态,并不会在任务列表中看到这个状态,当Z僵尸状态结束后就会进入Z死亡状态

R运行状态

R运行状态(running):并不意味着进程一定在运行中,它表明进程要么在CPU运行中,要么在CUP对应的运行队列里

  1. 那么小编编写一个死循环判断程序,用于讲解进程的运行状态
#include 

int main()
{
  while(1)
  {}

  return 0;
}

运行结果查看如下

  1. 当我们将代码运行起来之后程序陷入死循环判断
  2. 当我们使用ps工具查看进程状态,查看到STAT即state状态那一栏我们的进程对应的为R+,即前台运行状态,当状态中没有+的时候表示后台的某种状态,此时我们的进程就是R运行状态
  3. 思考一下为什么我们的进程处于运行状态?因为我们的死循环判断程序会不断的进行重复执行代码,占用CPU资源,并且它不满足访问外设,例如显示屏,键盘等,进入阻塞状态或其它状态的情况,所以此时进程就处于运行状态

S睡眠状态

S睡眠状态(sleeping):意味着进程在等待事件完成,同时也叫做可中断睡眠,浅度睡眠,即睡眠期间可以被唤醒,对应操作系统学科中的阻塞状态

  1. 这是一个死循环打印的程序
#include 

int main()
{
  while(1)
  {
    printf("i am a process
");
  }

  return 0;
}

运行结果如下

  1. 当小编将程序运行起来后,我们的程序在屏幕上疯狂的进行打印
  2. 当我们使用ps工具查看进程状态,查看到STAT即state状态那一栏我们的进程对应的为S+,此时我们的进程就是S睡眠状态
  3. 那么思考为什么我们的进程会处于睡眠状态?由于我们的程序会在屏幕上疯狂打印,那么就代表我们的进程要不断访问外设,即访问显示屏,在显示屏上进行写入数据,我们知道CPU的运行速度很快,进程运行的写入很快,由于进程运行的太快了,程序写入运行的那一瞬间是运行状态,我们使用ps很难捕捉到,并且显示屏的显示速度没有那么快,即显示屏并不是时时都是处于可写入状态,即打开状态,那么我们的进程就要不断的等待外设,即显示屏,此时就对应操作系统学科的阻塞状态,进程要链入显示屏的阻塞队列进行等待,所以此时我们的进程处于休眠状态
  1. 如下,小编编写了一个scanf读取程序
#include 

int main()
{
  int a = 0;
  scanf("%d", &a);

  return 0;
}

运行结果如下

  1. 当小编将程序运行起来后,我们的程序在屏幕上不断等待用户敲击键盘去写入数据
  2. 当我们使用ps工具查看进程状态,查看到STAT即state状态那一栏我们的进程对应的为S+,此时我们的进程就是S睡眠状态
  3. 那么思考为什么我们的进程会处于睡眠状态?我们的程序需要从键盘上读取数据,那么进程就是不断等待外设即键盘准备好,此时我们不去敲击键盘输入数据,那么键盘就会一直不准备好,即键盘状态是关闭,那么此时进程就会在键盘设备的阻塞队列中等待,此时就对应操作系统学科的阻塞状态,所以此时我们的进程处于休眠状态

D磁盘休眠状态

D磁盘休眠状态(disk sleep):也叫做深度睡眠,处于这个状态的进程通常会等待IO的结束,不响应任何请求,同时其也对应操作系统学科上的阻塞状态的一种特殊情况,处于深度睡眠的进程,不响应操作系统的任何请求,也无法被 kill -9杀死

  1. 那么小编以进程写入磁盘数据为例进行讲解
  2. (该点的讲解为假设情况下,并不是真实的)当我们的进程要向磁盘中写入数据(假设磁盘的内存空间不足以写入该数据),那么磁盘拿到数据进行写入,此时进程等待磁盘数据写入数据是否成功,即等待磁盘的反馈,恰好此时操作系统的内存资源严重不足,需要节约出内存空间,看到了这个进程正在等待,那操作系统看到,心想:“我的内存资源都要严重不足了,系统都要卡死了,你还在这里悠哉游哉的等待”,此时操作系统就将这个进程给杀死了,那么当磁盘尝试写入后,发现磁盘空间不足以写入该进程的数据,那么磁盘心想,这个数据太大了,反正我没有办法写入成功,但是我剩余的空间还可以写入其它较小的数据,那么我就将该进程对应的数据全部丢弃去完成其它进程对应的较小的数据的写入,那么丢弃了,磁盘回头一看向给该进程一个回应,该进程呢?进程没有了
  3. 那么此时进程被操作系统杀死了,那么进程中对应的代码和数据也一并被释放了,同时磁盘也写入数据失败,将数据直接丢弃了,那么此时就造成了数据丢失问题,那么小编分析一波,操作系统是为了节约内存,维持良好的环境而杀死的进程,这没毛病,进程在等待磁盘的回应是被杀的,进程是受害者,磁盘放不下数据,将数据直接丢失了去完成其它进程对应的较小的数据的写入了,这也没毛病,这是不是很难评判是谁的责任,所以对于这种数据丢失情况无法评判是谁的责任,那在用户使用系统的时候数据肯定不能够频繁的丢失,如果数据频繁的丢失,那造成的后果是不可想象的
  4. 所以针对这种情况,那么会将该进程设定为深度睡眠,即对于操作系统的不响应任何请求,那么进程不能被操作系统杀死,那么进程对应的代码和数据也不会丢失,只有接收到磁盘对应的回应才会响应苏醒,那么此时再遇到上面这种情况数据就不会丢失了

T停止状态

T停止状态(stopped/tracing stop):可以通过发送信号停止进程,这个被停止的进程也可以通过发送信号来继续运行,在当前阶段的学习中,stopped/tracing stop一般不做区分
tracing stop(即追踪暂停)指调试过程中的进程暂停,例如使用gdb调试器的过程中就对应追踪暂停状态,使用gdb对程序进行调试,那么到断点处,进程会暂停下来,那么gdb就可以控制进程,此时gdb就可以对当前程序的变量等信息进行查看,此时进程所处的状态就是tracing stop追踪暂停状态
T暂停状态有助于我们对进程进行一定的控制,追踪暂停调试

  1. 使用如下代码演示控制进程
#include 
#include 
#include 

int main()
{
  while(1)
  {
    printf("i am proc,my PID:%d,my PPID:%d
",getpid(),getppid());
    sleep(6);
  }

  return 0;
}

同时还可以使用kill指令发送信号进行控制进程

  • kill -19 进程标识符 将进程暂停
  • kill -18 进程标识符 让进程继续运行
  • kill -9 进程标识符 杀死进程,终止进程

  1. 那么我们让我们的死循环打印的进程运行起来之后使用ps指令查看进程状态是S+休眠状态(前台运行),这是正常的,因为进程大部分时间都在等待设备,即等待显示屏准备好,具体原因小编在S随眠状态中有讲
  2. 那么接下来程序运行起来之后就死循环打印,那么接下来小编右边使用kill -19 进程标识符,将进程暂停下来,观察左边程序运行情况,进程就被stopped暂停下来了,此时在右边使用ps查看进程的状态就为对应的T停止状态
  3. 那么接下来小编在右边使用kill -18 进程标识符,让进程继续运行,观察左边程序运行情况,进程就被继续运行了,此时在右边使用ps查看进程的状态就为对应的S休眠状态(后台运行)
  4. 那么接下来小编在右边使用kill -9 进程标识符,杀死进程,观察左边程序运行情况,我们的进程就被杀死,即终止运行了
  1. 使用如下代码演示使用gdb调试进程
#include 
#include 
#include 

int main()
{
  printf("i am proc,my PID:%d,my PPID:%d
",getpid(),getppid());

  return 0;
}

使用gdb调试进程,查看进程对应的t追踪停止状态

  1. 我们的makefile中的proc的依赖方法要带-g选项才可以对程序进行调试

【inux】linux项目自动化构建工具-make/Makefile 详情请点击<——

  1. 使用gdb调试代码,在第8行设置断点,使用r将程序运行到断点处

【linux】linux调试器-gdb的使用 详情请点击<——

  1. 当程序运行到第8行的断点处之后,使用ps查看进程状态,进程对应进程状态为t,即当前进程处于追踪暂停状态

三、僵尸进程(Z僵尸状态)

僵尸进程(zombies):子进程退出的时候,如果父进程没有主动回收子进程的信息,那么子进程会让自己一直处于Z僵尸状态,即对应子进程相关资源尤其是task_struct结构体不能释放


exit系统调用接口可以终止一个进程,使用exit可以保证我们的子进程或父进程被终止,带来更好的演示
使用exti时不要忘记包含头文件 #include 和 #include

  1. 使用如下进行演示子进程的僵尸进程状态
#include 
#include 
#include 
#include 

int main()
{
  printf("i am a proc,my PID:%d,my PPID:%d
",getpid(),getppid());
  sleep(3);

  pid_t id = fork();
  if(id > 0)
  {
    while(1)
    {
      printf("i am a father,my PID:%d,my PPID:%d
",getpid(),getppid());
      sleep(2);
    }
  }
  else
  {
    int cnt =3;
    while(cnt--)
    {
      printf("i am a child,my PID:%d,my PPID:%d
",getpid(),getppid());
      sleep(2);
    }
    exit(0);
  }
}

运行结果如下

  1. 当执行程序后,初始时只有一个当前进程,使用ps查看当前进程处于S睡眠状态
  2. 当3秒后,当前进程调用了fork会创建子进程,当前进程成为父进程,子进程和父进程通过if分流,进入不同的执行流去执行不同的代码块,使用ps查看此时子进程和父进程都是处于S睡眠状态
  3. 父进程会一直死循环间隔睡眠2s打印进程的PID和PPID
  4. 子进程会打印三次进程的PID和PPID后被exit系统调用终止进程,那么此时父进程忙于打印,没有对子进程做任何事情,即父进程没有主动对子进程的信息进行回收,所以使用ps查看子进程此时就会维持Z僵尸状态
  5. 同时当小编使用ctrl+c将左边进程强制终止之后,终止的是父进程,那么父进程会被对应的bash进行回收,那么子进程在父进程结束的时候,那么子进程就没有父进程了,瞬间子进程就被1号进程收养了,由于子进程也是处于退出状态还维护着进程信息,那么就会被1号进程回收,进行资源的释放,那么具体原因请见下文讲解的孤儿进程

僵尸进程的危害

  1. 子进程的退出状态必须被维持下去,因为它要告诉关心它的父进程,父进程交给自己的任务,自己完成的怎么样了,可是如果父进程一直不进行读取,那么此时子进程就要一直维持这个Z僵尸状态
  2. 那么这个退出状态维护的其实是子进程的进程信息,即进程的PCB即task_struct结构体,那么子进程对应的未进行释放的task_struct结构体会一直会得不到释放,就会一直占用空间,那么就会造成内存泄露

四、孤儿进程

孤儿进程:父子进程中,父进程先退出,子进程的父进程会被改为1号进程(操作系统),我们称该子进程被操作系统领养了,那么像这种父进程是1号进程的子进程我们称为孤儿进程
此时这个子进程就变成了后台进程,普通的ctrl+c无法进行退出,只能使用kill -9 进程标识符,将子进程杀死

#include 
#include 
#include 
#include 

int main()
{
  printf("i am a proc,my PID:%d,my PPID:%d
",getpid(),getppid());
  sleep(3);

  pid_t id = fork();
  if(id > 0)
  {
    int cnt=2;
    while(cnt--)
    {
      printf("i am a father,my PID:%d,my PPID:%d
",getpid(),getppid());
      sleep(2);
    }
    exit(0);
  }
  else
  {
    while(1)
    {
      printf("i am a child,my PID:%d,my PPID:%d
",getpid(),getppid());
      sleep(2);
    }
  }

  return 0;
}

运行结果如下

  1. 当执行程序后,初始时只有一个当前进程,使用ps查看当前进程处于S+睡眠状态(前台进程)
  2. 当3秒后,当前进程调用了fork会创建子进程,当前进程成为父进程,子进程和父进程通过if分流,进入不同的执行流去执行不同的代码块,使用ps查看此时子进程和父进程都是处于S+睡眠状态(前台进程)
  3. 子进程会一直死循环间隔睡眠2s打印进程的PID和PPID
  4. 父进程会打印两次进程的PID和PPID后被exit系统调用终止进程,那么此时子进程的父进程的进程信息被bash回收释放了,那么此时子进程也要退出呀,子进程也要被父进程回收进程信息呀,但是却没有了父进程,这里的bash进程算的上是当前子进程的爷爷进程,可是任何一个父进程只对子进程负责,即bash使用fork创建出来的当前子进程的父进程, bash只对当前子进程的父进程负责,bash的代码逻辑中没有要为当前子进程负责的逻辑,所以bash不能回收当前的子进程
  5. 操作系统肯定不能看下去这样的事情发生,因为任何一个进程都要退出,也要被释放,子进程没人回收这可不行,那么此时操作系统会成为子进程的父进程,即操作系统收养了当前的子进程
  6. 注意此时的子进程被操作系统收养,在后台运行,并且小编写的是死循环打印,那么子进程不会主动退出,那么只能使用kill -9 进程标识符,杀死子进程进行退出

查看1号进程

  1. 那么我们使用top指令显示一下linux的进程信息,那么可以看到1号进程对应的就为systemd(在有些较老版本上的操作系统上对应的为init)即操作系统(OS)
  2. 接下来使用ps指令查看一下systemd(操作系统OS),那么其对应就为1号进程

五、批量化操作

六、进程优先级

基本概念

优先级:对于资源的访问,谁先访问,谁后访问
进程的优先级:CPU资源分配的先后顺序,优先级高的进程有优先执行访问权限的权利

  1. 为什么要有优先级:因为CPU的资源是有限的,进程有多个,所以就进程之间就必然有竞争关系
  2. 操作系统必须保证大家良性竞争,所以就要确定优先级
  3. 如果非良性竞争,那么就会导致某些进程长时间得不到CPU资源,该进程的代码长时间得不到推进——进程的饥饿问题
  4. 通常来讲,非必要情况用户不需要调整优先级,进程的优先级的调整由调度器管控

如何调整优先级

  1. 小编使用如下死循环打印程序,讲解如何调整进程的优先级
#include 
#include 
#include 

int main()
{
  while(1)
  {
    printf("i am process,my PID:%d,my PPID:%d
",getpid(),getppid());
    sleep(2);
  }

  return 0;
}

运行结果如下

  1. 运行程序后,进程不断在屏幕上打印,那么我们复制SSH渠道,在复制的SSH渠道中,使用ps -l查看当前运行进程,发现没有我们的程序proc,这是因为ps -l只会在当前SSH渠道中显示当前运行的进程,对于其它SSH渠道会默认不显示
  2. 那么这时候我们使用ps -al即,显示全部当前运行进程,即可查看到我们的运行的程序proc


那么观察一下

  • PID为进程标识符,PPID为父进程标识符
  • UID表示执行者身份
  • PRI表示这个进程可被执行的优先级,这个PRI的值越小代表越早被执行
  • NI表示这个进程的nice值,表示这个进程优先级的修正数据
PRI和NI

PRI表示这个进程可被执行的优先级,这个PRI的值越小代表越早被执行
NI表示这个进程的nice值,表示这个进程优先级的修正数据

  1. PRI表示越小就越快被执行,那么加入NI(nice)值后会变成PRI(新)=PRI(旧)+NI,注意这个旧的PRI为初始值一直不变,比如初始值PRI为80,NI为10,那么运算后,新PRI为80+10为90,那么下次计算时,PRI仍然使用初始值进行计算,比如下一次NI为-10,那么运算后,新PRI为80-10为70
  2. 这样NI(nice)为负数,那么那么该程序优先级的值的会变小,即进程优先级会变高,也就越快被执行
  3. 所以在linux中,用户调整进程优先级的方式是调整nice值
  4. 那么既然我用户可以调正优先级,那么我可不可以将nice设置的非常小,然后大大的提高我们进程的优先级,进而达到控制优先级,让我们的进程可以达到几户一直被调度呢?
  5. 不可以,linux本身是有调整优先级的调度器的,调度器决定哪一个进程被优先调度,即由调度器确定进程的优先级,调度器使用调度算法极为合理的安排进程的优先级,提高系统性能,所以linux不想让用户过多的参与优先级的调整,所以限定我们在一定范围进行调正, 即nice值对应[-20,19],一共40个值,那么当PRI为80时,那么对应优先级就为[60,99]
具体调整优先级

进程优先级的调整需要使用su将普通用户切换到root用户但不改变当前路径【linux】su的使用
或使用sudo提权也可以【linux】如何才能让普通用户进行sudo提权
小编采用su和sudo的方式共同进行讲解

使用nice和renice
  1. nice调整当前bash的nice值,那么bash创建出来的子进程的nice值都会遵循bash的nice值
  2. 使用方法nice -n 你要调整的nice值 bash

运行结果如下

  1. 那么调整后运行我们的程序proc,使用ps -al在复制的SSH渠道中查看程序其对应的NI(nice)值就为10,那么使用ps -al查看对应的PRI对应也为80+10即为90,nice在程序运行前的SSH渠道中使用不需要sudo,可以直接提权
  1. rename的对一个正在运行的程序使用,可以调整其nice值
  2. rename -n 要设置的nice值 -p 进程标识符

运行结果如下

  1. 那么小编在复制的SSH渠道中使用renice对小编当前运行的nice值进行了调整为了0,使用ps -al进行查看那么对应的PRI就为80+0等于80
  1. 同时也可以直接使用nice以一个nice值运行一个进程,此时后面需要跟路径
  2. nice -n 设置的nice值 路径,这里小编以当前路径下的进程proc运行

  1. 那么使用nice以一个nice值运行一个进程
  2. 那么小编在复制的SSH渠道中使用ps -al查看对应的proc进程的nice值就为19,其PRI值就为80+19即为99
使用top
  1. 将程序运行起来,复制SSH渠道,在复制的渠道中输入top,按下回车
  2. 之后继续输入r,按下回车
  3. 那么此时它会提示要你输入要调整进程对应的PID,将我们进程的PID输入18888,按下回车
  4. 继续输入要调整的nice值,这里输入10,按下回车
  5. 那么使用ps查看,我们的进程的nice值就被调整为10,其对应的PRI就对应为80+10即为90

总结

以上就是今天的博客内容啦,希望对读者朋友们有帮助
水滴石穿,坚持就是胜利,读者朋友们可以点个关注
点赞收藏加关注,找到小编不迷路!

本文地址:https://www.vps345.com/11659.html

搜索文章

Tags

PV计算 带宽计算 流量带宽 服务器带宽 上行带宽 上行速率 什么是上行带宽? CC攻击 攻击怎么办 流量攻击 DDOS攻击 服务器被攻击怎么办 源IP docker 容器 运维 java-rabbitmq java 服务器安全 网络安全策略 防御服务器攻击 安全威胁和解决方案 程序员博客保护 数据保护 安全最佳实践 人工智能 自动化 javascript 前端 chrome edge ubuntu centos python linux 机器学习 服务器 深度学习 Deepseek Deepseek-R1 大模型 私有化部署 推理模型 deepseek DeepSeek-R1 API接口 游戏 云计算 FTP服务器 c++ harmonyos 华为 ssh 网络工程师 网络管理 软考 2024 2024年上半年 下午真题 答案 AIGC 人工智能生成内容 Dify 数据库 oracle 关系型 安全 分布式 stm32 嵌入式硬件 单片机 无人机 机器人 DNS http YOLO 目标检测 计算机视觉 网络 ssl ddos android 网络安全 web安全 tcp/ip 服务器无法访问 ip地址无法访问 无法访问宝塔面板 宝塔面板打不开 django 语言模型 自然语言处理 开发语言 vscode vue3 excel 在线预览 xlsx xls文件 在浏览器直接打开解析xls表格 前端实现vue3打开excel 文件地址url或接口文档流二进 https redis github git kubernetes 学习方法 经验分享 程序人生 windows 远程桌面 神经网络 卷积神经网络 镜像源 ai nlp llama deepseek-r1 大模型本地部署 arm开发 架构 macos MacMini Mac 迷你主机 mini Apple 物联网 数据库系统 springsecurity6 oauth2 授权服务器 前后端分离 conda npm rsyslog 学习 Ollama 模型联网 API CherryStudio udp gitea CH340 串口驱动 CH341 uart 485 nginx 云原生 iventoy VmWare OpenEuler mcp RAID RAID技术 磁盘 存储 vue.js audio vue音乐播放器 vue播放音频文件 Audio音频播放器自定义样式 播放暂停进度条音量调节快进快退 自定义audio覆盖默认样式 RTSP xop RTP RTSPServer 推流 视频 spring boot 笔记 C 环境变量 进程地址空间 进程 c语言 Ubuntu DeepSeek DeepSeek Ubuntu DeepSeek 本地部署 DeepSeek 知识库 DeepSeek 私有化知识库 本地部署 DeepSeek DeepSeek 私有化部署 负载均衡 pytorch yolov5 操作系统 进程控制 Ubuntu php node.js 策略模式 Qwen2.5-coder 离线部署 flutter Google pay Apple pay ansible Flask FastAPI Waitress Gunicorn uWSGI Uvicorn 网络协议 opencv cursor gcc centos 7 算法 kafka 智能路由器 dell服务器 k8s ip协议 oracle fusion oracle中间件 mysql 远程工作 交互 mount挂载磁盘 wrong fs type LVM挂载磁盘 Centos7.9 程序 编程 内存 性能分析 网络结构图 IIS服务器 IIS性能 日志监控 华为云 华为od outlook 错误代码2603 无网络连接 2603 远程连接 agi 实时音视频 音视频 rpc 游戏引擎 gpu算力 jvm 虚拟机 typescript 鸿蒙 指令 prometheus grafana pycharm ide 英语 unix gnu opengl 信息与通信 ROS 自动驾驶 ui ipython microsoft 回显服务器 UDP的API使用 计算机外设 bug chatgpt YOLOv8 NPU Atlas800 A300I pro asi_bench 智能体开发 AI 缓存 AI编程 JDK Java LInux Windows ssh漏洞 ssh9.9p2 CVE-2025-23419 fstab 阿里云 UEFI Legacy MBR GPT U盘安装操作系统 数据分析 perf 面试 职场和发展 服务器配置 生物信息学 spring cloud apache grub 版本升级 扩容 SRS 流媒体 直播 Ubuntu20.04 GLIBC 2.35 ip compose 持续部署 银河麒麟 devops 嵌入式 adb react next.js 部署 部署next.js CPU 使用率 系统监控工具 linux 命令 cron crontab日志 性能优化 虚拟现实 并查集 leetcode 反向代理 科技 个人开发 本地环回 bind intellij-idea AutoDL centos-root /dev/mapper yum clean all df -h / du -sh tomcat mysql离线安装 ubuntu22.04 mysql8.0 filezilla 无法连接服务器 连接被服务器拒绝 vsftpd 331/530 外网访问 内网穿透 端口映射 腾讯云 json html5 firefox 快捷键 旋转屏幕 自动操作 ACL 流量控制 基本ACL 规则配置 交换机 硬件 设备 GPU PCI-Express react.js 前端面试题 rust腐蚀 USB转串口 c# asp.net大文件上传 asp.net大文件上传下载 asp.net大文件上传源码 ASP.NET断点续传 pygame 像素流送api 像素流送UE4 像素流送卡顿 像素流送并发支持 qt arm kylin adobe iftop 网络流量监控 银河麒麟操作系统 国产化 ollama 压力测试 大模型压力测试 EvalScope dify 知识库 本地化部署 ArkUI 鸿蒙系统 ArkTS qps 高并发 雨云 NPS C语言 linux环境变量 Linux xrdp axure 富文本编辑器 环境迁移 eureka 串口服务器 word图片自动上传 word一键转存 复制word图片 复制word图文 复制word公式 粘贴word图文 粘贴word公式 云计算面试题 llm transformer express 大数据 spark hive visualstudio 网络药理学 生信 gromacs 分子动力学模拟 MD 动力学模拟 计算机网络 课程设计 svn es6 qt6.3 g726 webrtc 数据挖掘 ffmpeg 视频编解码 pip uni-app MCP 开源 rdp 远程服务 debian PVE FTP 服务器 jmeter 测试工具 测试用例 功能测试 教程 环境搭建 Maven cuda 媒体 golang go file server http server web server websocket 虚拟局域网 dash 正则表达式 开发环境 burpsuite 安全工具 mac安全工具 burp安装教程 渗透工具 matplotlib fonts-noto-cjk maxkb ARG nvm ubuntu 18.04 安装教程 智能手机 NAS Termux Samba list 数据结构 selenium 实时互动 虚拟显示器 远程控制 7z python2 ubuntu24.04 jellyfin nas postman 后端 Python 华为认证 Cursor VMware 工具分享 JAVA jenkins maven vite glibc Alexnet milvus 浪潮信息 AI服务器 私有化 本地部署 virtualenv 电脑 NVML nvidia-smi 目标跟踪 OpenVINO 推理应用 postgresql 阻塞队列 生产者消费者模型 服务器崩坏原因 gitlab unity fastapi flask web3.py DeepSeek Chatbox ubuntu20.04 开机黑屏 1024程序员节 华为OD 华为OD机试真题 可以组成网络的服务器 WSL2 IP 地址 WebRTC gpt Doris搭建 docker搭建Doris Doris搭建过程 linux搭建Doris Doris搭建详细步骤 Doris部署 IMM spring 爬虫 IM即时通讯 QQ 微信 企业微信 剪切板对通 HTML FORMAT live555 rtsp rtp 硬件工程 gitee mcu mcp-proxy mcp-inspector fastapi-mcp agent sse webdav elasticsearch bash vnc 微信小程序 自定义客户端 SAS rocketmq Linux 维护模式 灵办AI 小程序 微信小程序域名配置 微信小程序服务器域名 微信小程序合法域名 小程序配置业务域名 微信小程序需要域名吗 微信小程序添加域名 监控k8s集群 集群内prometheus vim 上传视频文件到服务器 uniApp本地上传视频并预览 uniapp移动端h5网页 uniapp微信小程序上传视频 uniapp app端视频上传 uniapp uview组件库 HarmonyOS Next 进程程序替换 execl函数 execv函数 execvp函数 execvpe函数 putenv函数 前端框架 vmware 卡死 Dell R750XS EtherCAT转Modbus EtherCAT转485网关 ECT转485串口服务器 ECT转Modbus485协议 ECT转Modbus串口网关 ECT转Modbus串口服务器 多层架构 解耦 linux驱动开发 iot 多线程服务器 Linux网络编程 微信分享 Image wxopensdk QT 5.12.12 QT开发环境 Ubuntu18.04 IIS .net core Hosting Bundle .NET Framework vs2022 ros 话题通信 服务通信 aws GPU环境配置 Ubuntu22 CUDA PyTorch Anaconda安装 rtsp服务器 rtsp server android rtsp服务 安卓rtsp服务器 移动端rtsp服务 大牛直播SDK 镜像下载 freebsd 命名管道 客户端与服务端通信 一切皆文件 AI大模型 大模型技术 本地部署大模型 dubbo TCP WebServer 冯诺依曼体系 SSH 程序员创富 宝塔面板访问不了 宝塔面板网站访问不了 宝塔面板怎么配置网站能访问 宝塔面板配置ip访问 宝塔面板配置域名访问教程 宝塔面板配置教程 ESP32 Netty 即时通信 NIO 常用命令 文本命令 目录命令 remote-ssh localhost VMware安装mocOS macOS系统安装 jdk jupyter 腾讯云大模型知识引擎 grep r语言 数据可视化 docker desktop 镜像 openvpn server openvpn配置教程 centos安装openvpn VMware Tools vmware tools安装 vmwaretools安装步骤 vmwaretools安装失败 vmware tool安装步骤 vm tools安装步骤 vm tools安装后不能拖 vmware tools安装步骤 权限 宝塔面板 同步 备份 建站 安全威胁分析 rust stm32项目 ping++ 运维开发 LDAP rustdesk zotero WebDAV 同步失败 代理模式 ros1 Noetic 20.04 apt 安装 p2p 区块链 行情服务器 股票交易 速度慢 切换 股票量化接口 股票API接口 windows 服务器安装 Ubuntu 22.04 MySql 算家云 算力租赁 计算生物学 生物信息 基因组 diskgenius 监控 自动化运维 gateway Clion Nova ResharperC++引擎 Centos7 远程开发 EtherNet/IP串口网关 EIP转RS485 EIP转Modbus EtherNet/IP网关协议 EIP转RS485网关 EIP串口服务器 zabbix mariadb 集成学习 集成测试 Redis Desktop ue4 着色器 ue5 虚幻 国产数据库 瀚高数据库 数据迁移 下载安装 mac java-rocketmq 统信 国产操作系统 虚拟机安装 VM搭建win2012 win2012应急响应靶机搭建 攻击者获取服务器权限 上传wakaung病毒 应急响应并溯源 挖矿病毒处置 应急响应综合性靶场 网易邮箱大师 链表 AI-native Docker Desktop eclipse opensearch helm jar 孤岛惊魂4 MobaXterm 文件传输 samba miniapp 真机调试 调试 debug 断点 网络API请求调试方法 大语言模型 LLMs 防火墙 端口号 开放端口 访问列表 asm C++ opcua opcda KEPServer安装 oneapi sysctl.conf vm.nr_hugepages MQTT 消息队列 群晖 文件分享 离线部署dify 系统安全 xcode nohup 异步执行 DevEco Studio Hyper-V WinRM TrustedHosts arkUI arkTs 图像处理 open webui Kali Linux 黑客 渗透测试 信息收集 sql mongodb 大文件分片上传断点续传及进度条 如何批量上传超大文件并显示进度 axios大文件切片上传详细教 node服务器合并切片 vue3大文件上传报错提示错误 大文件秒传跨域报错cors ssrf 失效的访问控制 编辑器 Ubuntu22.04 虚拟化 开发人员主页 高级IO epoll Unity Dedicated Server Host Client 无头主机 firewall cpu 实时 使用 Qualcomm WoS QNN AppBuilder pillow ollama api ollama外网访问 wsl 知识图谱 LLM 大模型教程 直播推流 网络爬虫 efficientVIT YOLOv8替换主干网络 TOLOv8 hadoop 驱动开发 C# MQTTS 双向认证 emqx 升级 CVE-2024-7347 漏洞 ios KylinV10 麒麟操作系统 Vmware 执法记录仪 智能安全帽 smarteye PX4 camera Arduino 电子信息 软件需求 录音麦克风权限判断检测 录音功能 录音文件mp3播放 小程序实现录音及播放功能 RecorderManager 解决录音报错播放没声音问题 docker compose ECT转Modbus协议 EtherCAT转485协议 ECT转Modbus网关 隐藏文件 rag ragflow 大模型部署 HP Anyware oceanbase 传统数据库升级 银行 openwrt frp GCC aarch64 编译安装 HPC burp suite 抓包 ai小智 语音助手 ai小智配网 ai小智教程 智能硬件 esp32语音助手 diy语音助手 matlab 通信工程 毕业 shell 磁盘监控 GaN HEMT 氮化镓 单粒子烧毁 辐射损伤 辐照效应 温湿度数据上传到服务器 Arduino HTTP 桥接模式 windows虚拟机 虚拟机联网 系统架构 powerpoint Trae IDE AI 原生集成开发环境 Trae AI 蓝桥杯C++组 蓝桥杯 嵌入式实习 pdf 进程优先级 调度队列 进程切换 Linux Vim 实战案例 Kylin-Server 服务器安装 visual studio code vm vSphere vCenter KingBase Cline 其他 yum docker-compose 硅基流动 ChatBox 管道 匿名管道 protobuf 序列化和反序列化 安装 rc.local 开机自启 systemd 麒麟 云电竞 云电脑 todesk css css3 openjdk export env 变量 聚类 java-ee mock mock server 模拟服务器 mock服务器 Postman内置变量 Postman随机数据 NFS kotlin android studio iphone kali 共享文件夹 kernel 券商 股票交易接口api 类型 特点 ocr 大模型应用 毕设 服务器扩容没有扩容成功 linuxdeployqt 打包部署程序 appimagetool SSH 密钥生成 SSH 公钥 私钥 生成 高效I/O etcd 数据安全 RBAC openssl openEuler windwos防火墙 defender防火墙 win防火墙白名单 防火墙白名单效果 防火墙只允许指定应用上网 防火墙允许指定上网其它禁止 clickhouse Invalid Host allowedHosts vue Linux PID yolov8 c linux内核 termux 系统 黑苹果 CNNs 图像分类 安卓模拟器 火绒安全 html web lighttpd安装 Ubuntu配置 Windows安装 性能测试 服务器优化 MCP server C/S 软件定义数据中心 sddc 磁盘挂载 新盘添加 partedUtil 命令 elk CPU 主板 电源 网卡 googlecloud 读写锁 桌面环境 软件测试 intellij idea VMware安装Ubuntu Ubuntu安装k8s 硬件架构 3d 数学建模 智能合约 哈希算法 信息可视化 echarts 鲲鹏 移动端开发 Agent .netcore Hive环境搭建 hive3环境 Hive远程模式 王者荣耀 python3.11 pyside6 界面 kamailio sip VoIP 实验 做raid 装系统 BMC 大模型入门 思科 macbook Trae叒更新了? RDP 项目部署到linux服务器 项目部署过程 cnn Docker Docker Compose Kubernetes 安全漏洞 信息安全 .net shell脚本免交互 expect linux免交互 ruoyi 热榜 互信 单一职责原则 网络编程 聊天服务器 套接字 客户端 Socket vasp安装 图文教程 VMware虚拟机 macOS系统安装教程 macOS最新版 虚拟机安装macOS Sequoia zip unzip 昇腾 大模型训练/推理 推理问题 mindie numpy 中间件 iis kubeless Kali 渗透 springboot 微服务 ci/cd 代码规范 tcpdump WebUI DeepSeek V3 big data 用户管理 k8s部署 MySQL8.0 高可用集群(1主2从) threejs 3D n8n 工作流 DevOps 软件交付 数据驱动 应用场景 IPMI RAGflow ecmascript nextjs reactjs DigitalOcean GPU服务器购买 GPU服务器哪里有 GPU服务器 sqlserver MacOS录屏软件 vr Xterminal 程序员 tcp 压测 ECS Maxkb RAG技术 本地知识库 HTML audio 控件组件 vue3 audio音乐播放器 Audio标签自定义样式默认 vue3播放音频文件音效音乐 自定义audio播放器样式 播放暂停调整声音大小下载文件 ip命令 新增网卡 新增IP 启动网卡 多线程 vu大文件秒传跨域报错cors flash-attention 报错 iTerm2 大模型微调 信号处理 notepad WLAN odoo 服务器动作 Server action MS Materials VMware创建虚拟机 源码剖析 rtsp实现步骤 流媒体开发 游戏程序 高效日志打印 串口通信日志 服务器日志 系统状态监控日志 异常记录日志 Mermaid 可视化图表 自动化生成 sqlite3 中兴光猫 换光猫 网络桥接 自己换光猫 ufw chatbox 密码学 Linux无人智慧超市 LInux多线程服务器 QT项目 LInux项目 单片机项目 安卓 智能体 autogen openai coze CrewAI fpga开发 智慧农业 开源鸿蒙 团队开发 sublime text RustDesk自建服务器 rustdesk服务器 docker rustdesk 统信UOS bonding 链路聚合 retry 重试机制 vscode1.86 1.86版本 ssh远程连接 conda配置 conda镜像源 LLM Web APP Streamlit 图形化界面 换源 国内源 Debian mybatis pyicu 软件开发 信任链 图论 database llama3 Chatglm 开源大模型 docker run 数据卷挂载 交互模式 iBMC UltraISO 进程信号 windows日志 自动化编程 make命令 makefile文件 搜索引擎 SSE zookeeper 数码 联机 僵尸毁灭工程 游戏联机 开服 iDRAC R720xd 域名服务 DHCP 符号链接 配置 scikit-learn 具身智能 Isaac Sim 虚拟仿真 ros2 moveit 机器人运动 rancher VSCode 软件卸载 系统清理 WSL2 上安装 Ubuntu 嵌入式系统开发 笔灵AI AI工具 selete SecureCRT 分析解读 sublime text3 软链接 硬链接 内网渗透 靶机渗透 日志分析 系统取证 copilot ArkTs Office 环境配置 Docker引擎已经停止 Docker无法使用 WSL进度一直是0 镜像加速地址 playbook 剧本 VPN wireguard import save load 迁移镜像 initramfs Linux内核 Grub Mac内存不够用怎么办 低代码 c/s 单例模式 网络用户购物行为分析可视化平台 大数据毕业设计 xml v10 软件 智能电视 photoshop ECS服务器 minio openstack Xen KVM cfssl nftables Linux权限 权限命令 特殊权限 拓扑图 5G TRAE UOS 统信操作系统 动静态库 网卡的名称修改 eth0 ens33 P2P HDLC word linux上传下载 NAT转发 NAT Server 大模型推理 大模型学习 DrissionPage fork wait waitpid exit su sudo 语音识别 AI写作 推荐算法 源代码管理 cmos 顽固图标 启动台 ICMP 框架搭建 WSL resolv.conf 政务 分布式系统 监控运维 Prometheus Grafana 迁移指南 SWAT 配置文件 服务管理 网络共享 工具 进程间通信 远程 执行 sshpass 操作 云服务器 arcgis vmamba 宝塔 深度求索 私域 nuxt3 tar nohup后台启动 keepalived 主从复制 js seatunnel 显示器 curl wget 矩阵 sudo原理 su切换 教育电商 社交电子 工业4.0 卸载 列表 产品经理 umeditor粘贴word ueditor粘贴word ueditor复制word ueditor上传word图片 ueditor导入word ueditor导入pdf ueditor导入ppt 云原生开发 K8S k8s管理系统 Linux的基础指令 博客 EVE-NG 计算机科学与技术 langchain deep learning docker搭建nacos详解 docker部署nacos docker安装nacos 腾讯云搭建nacos centos7搭建nacos 多产物 vscode 1.86 Reactor 设计模式 服务器部署 本地拉取打包 可信计算技术 junit autoware 开发 deepseak 文心一言 豆包 KIMI 腾讯元宝 web3 区块链项目 unity3d kylin v10 麒麟 v10 YOLOv12 Nuxt.js wps iperf3 带宽测试 nacos 豆瓣 追剧助手 迅雷 trae 弹性计算 裸金属服务器 弹性裸金属服务器 Masshunter 质谱采集分析软件 使用教程 科研软件 软件工程 Web服务器 多线程下载工具 PYTHON lvm 磁盘分区 GRE H3C dns systemctl composer alias unalias 别名 HiCar CarLife+ CarPlay QT RK3588 云服务 firewalld 混合开发 环境安装 僵尸进程 HCIE 数通 Web应用服务器 飞腾处理器 弹性服务器 安装MySQL 源码 毕业设计 ROS2 webgl Bug解决 Qt platform OpenCV 个人博客 电路仿真 multisim 硬件工程师 硬件工程师学习 电路图 电路分析 仪器仪表 ragflow 源码启动 Portainer搭建 Portainer使用 Portainer使用详解 Portainer详解 Portainer portainer OpenCore pyautogui 联网 easyconnect 代理 DBeaver cudnn anaconda bot Carla 智能驾驶 TrueLicense Mac软件 ukui 麒麟kylinos openeuler onlyoffice IP配置 netplan 海康 论文阅读 Pyppeteer Playwright 京东云 harmonyOS面试题 自动化测试 邮件APP 免费软件 VPS webpack 宝塔面板无法访问 大屏端 软件构建 视频监控 网站 Linux24.04 deepin 沙盒 需求分析 提示词 电脑桌面出现linux图标 电脑桌面linux图标删除不了 电脑桌面Liunx图标删不掉 linux图标删不掉 计算机系统 CentOS xpath定位元素 nvidia Claude Desktop Claude MCP Windows Cli MCP uv 显卡驱动持久化 GPU持久化 设置代理 实用教程 token sas ESXi gpt-3 mac设置host 物联网开发 fd 文件描述符 服务器数据恢复 数据恢复 存储数据恢复 raid5数据恢复 磁盘阵列数据恢复 EMQX 通信协议 GameFramework HybridCLR Unity编辑器扩展 自动化工具 client-go k8s二次开发 top Linux top top命令详解 top命令重点 top常用参数 kind log4j visual studio 远程过程调用 Windows环境 Attention NLP api mamba Vmamba 内网环境 AD域 DocFlow k8s集群资源管理 GPU训练 Linux的权限 bcompare Beyond Compare 高德地图 鸿蒙接入高德地图 HarmonyOS5.0 zerotier redhat 锁屏不生效 ShapeFile GeoJSON Nginx stable diffusion Docker Hub docker pull daemon.json 创意 社区 db 监控k8s 监控kubernetes 机柜 1U 2U Windsurf AnythingLLM AnythingLLM安装 ftp服务 文件上传 远程看看 远程协助 商用密码产品体系 全文检索 图搜索算法 键盘 数据集 rabbitmq edge浏览器 WebVM MAVROS 四旋翼无人机 基础环境 状态管理的 UDP 服务器 Arduino RTOS 流水线 脚本式流水线 laravel rpa win11 无法解析服务器的名称或地址 armbian u-boot netty 磁盘清理 gradle kvm Linux awk awk函数 awk结构 awk内置变量 awk参数 awk脚本 awk详解 React Next.js 开源框架 ftp 考试 mysql安装报错 windows拒绝安装 wsl2 vsxsrv USB网络共享 ssh远程登录 SysBench 基准测试 影刀 宕机切换 服务器宕机 gitee go RAGFLOW Sealos Ubuntu 24 常用命令 Ubuntu 24 Ubuntu vi 异常处理 端口开放 Github加速 Mac上Github加速 Chrome浏览器插件 java-zookeeper 游戏服务器 Minecraft x64 SIGSEGV xmm0 DOIT 四博智联 浏览器开发 AI浏览器 数据库架构 数据管理 数据治理 数据编织 数据虚拟化 HistoryServer Spark YARN jobhistory 大版本升 升级Ubuntu系统 powerbi 免费 树莓派 VNC 性能调优 安全代理 thingsboard etl esp32 蓝牙 Ardupilot 网络攻击模型 免密 登录 公钥 私钥 dity make okhttp wireshark 显示过滤器 Wireshark安装 交叉编译 LLaMA-Factory telnet 远程登录 prompt AI提示词优化 开源软件 XFS xfs文件系统损坏 I_O error ajax X11 Xming ELF加载 数据仓库 kerberos pthread csrf uni-file-picker 拍摄从相册选择 uni.uploadFile H5上传图片 微信小程序上传图片 k8s资源监控 annotations自动化 自动化监控 监控service 监控jvm searxng PPI String Cytoscape CytoHubba FunASR ASR 小艺 Pura X AP配网 AK配网 小程序AP配网和AK配网教程 WIFI设备配网小程序UDP开 webstorm cmake AimRT 论文笔记 Wi-Fi 宠物 免费学习 宠物领养 宠物平台 CosyVoice jetty undertow massa sui aptos sei 强制清理 强制删除 mac废纸篓 华为证书 HarmonyOS认证 华为证书考试 Typore nac 802.1 portal 负载测试 mm-wiki搭建 linux搭建mm-wiki mm-wiki搭建与使用 mm-wiki使用 mm-wiki详解 MNN Qwen llamafactory 微调 信号 IO ubuntu安装 linux入门小白 Ark-TS语言 深度优先 并集查找 换根法 树上倍增 隐藏目录 文件系统 管理器 通配符 notepad++ wordpress Dell HPE 联想 浪潮 强化学习 游戏机 创业创新 yaml Ultralytics 可视化 MVS 海康威视相机 gaussdb ceph 输入法 dns是什么 如何设置电脑dns dns应该如何设置 单元测试 空间 查错 Reactor反应堆 DeepSeek行业应用 Heroku 网站部署 AI代码编辑器 双系统 asp.net上传文件夹 asp.net上传大文件 .net core断点续传 .net mvc断点续传 sonoma 自动更新 AI作画 xshell termius iterm2 Echarts图表 折线图 柱状图 异步动态数据 鸿蒙开发 可视化效果 安全架构 显卡驱动 neo4j 数据库开发 重启 排查 系统重启 日志 原因 micropython mqtt hdc 微信公众平台 实时内核 技术 ArcTS ArcUI GridItem 金仓数据库 2025 征文 数据库平替用金仓 金仓数据库概述 金仓数据库的产品优化提案 Ubuntu Server Ubuntu 22.04.5 TCP服务器 qt项目 qt项目实战 qt教程 fiddler netlink libnl3 金融 国标28181 监控接入 语音广播 流程 SIP SDP Ubuntu共享文件夹 共享目录 Linux共享文件夹 内核 springboot容器部署 springboot容器化部署 微服务容器化负载均衡配置 微服务容器多节点部署 微服务多节点部署配置负载均衡 银河麒麟服务器操作系统 系统激活 视频平台 录像 视频转发 视频流 企业风控系统 互联网反欺诈 DDoS攻击 SQL注入攻击 恶意软件和病毒攻击 solidworks安装 软考设计师 中级设计师 SQL 软件设计师 算力 授时服务 北斗授时 序列化反序列化 相机 jina 服务器管理 配置教程 网站管理 IPv4 子网掩码 公网IP 私有IP docker搭建pg docker搭建pgsql pg授权 postgresql使用 postgresql搭建 产测工具框架 IMX6ULL 管理框架 高效远程协作 TrustViewer体验 跨设备操作便利 智能远程控制 lsb_release /etc/issue /proc/version uname -r 查看ubuntu版本 finebi hibernate 线程 终端 sdkman 系统开发 binder 车载系统 framework 源码环境 底层实现 GKI KMI HarmonyOS OpenHarmony element-ui 上传视频并预览视频 vue上传本地视频及进度条功能 vue2选择视频上传到服务器 upload上传视频组件插件 批量上传视频 限制单个上传视频 本地部署AI大模型 springboot远程调试 java项目远程debug docker远程debug java项目远程调试 springboot远程 直流充电桩 充电桩 微信开放平台 微信公众号配置 iNode Macos SEO 视觉检测 显示管理器 lightdm gdm Webserver 异步 小游戏 五子棋 rsync 网络穿透 lio-sam SLAM 7-zip 图形渲染 fpga banner 网络文件系统 Node-Red 编程工具 流编程 小智 PyQt PySide6 上传视频至服务器代码 vue3批量上传多个视频并预览 如何实现将本地视频上传到网页 element plu视频上传 ant design vue vue3本地上传视频及预览移除 prometheus数据采集 prometheus数据模型 prometheus特点 网络原理 CORS 跨域 ubuntu24.04.1 生活 CentOS Stream 自学笔记 小米 澎湃OS Android perl 多进程 边缘计算 图片增强 增强数据 linux安装配置 半虚拟化 硬件虚拟化 Hypervisor 办公自动化 pdf教程 chromium dpi 能力提升 面试宝典 IT信息化 rnn workflow embedding 业界资讯 端口测试 考研 在线office 数据采集 Crawlee Cookie 玩游戏 code-server Xinference mosquitto 设备树 命令行 基础入门 Kylin OS chrome 浏览器下载 chrome 下载安装 谷歌浏览器下载 开机自启动 WireGuard 异地组网 运维监控 AISphereButler 玩机技巧 软件分享 软件图标 大数据平台 hosts hosts文件管理工具 ebpf uprobe harmonyosnext 网页设计 WINCC ShenTong 代码托管服务 向日葵 beautifulsoup yum源切换 更换国内yum源 音乐服务器 Navidrome 音流 Claude springcloud Java Applet URL操作 服务器建立 Socket编程 网络文件读取 rclone AList fnOS 分子对接 autodock mgltools PDB PubChem Docker快速入门 W5500 OLED u8g2 服务器ssl异常解决 概率论 minicom 串口调试工具 健康医疗 OpenManus 飞牛NAS 飞牛OS MacBook Pro 终端工具 远程工具 版本 pyqt DeepSeek r1 Open WebUI cd 目录切换 servlet RTMP 应用层 image gru OD机试真题 服务器能耗统计 Xshell 轮播图 safari 计算机 pppoe radius 恒源云 ux npu apt CLion shard 智能音箱 智能家居 动态规划 IPMITOOL 硬件管理 ollama下载加速 TrinityCore 魔兽世界 服务器繁忙 SVN Server tortoise svn Python 视频爬取教程 Python 视频爬取 Python教程 Python 视频教程 移动云 CDN c/c++ 串口 安防软件 dba linux 命令 sed 命令 CUPS 打印机 Qt5 nano RoboVLM 通用机器人策略 VLA设计哲学 vlm fot robot 视觉语言动作模型 程序化交易 量化交易 高频交易 自动化任务管理 tensorflow RagFlow RAG deepseek-v3 ktransformers SSH 服务 SSH Server OpenSSH Server 用户缓冲区 模拟实现 nfs 服务器部署ai模型 skynet node 浏览器自动化 SenseVoice 分布式账本 共识算法 三级等保 服务器审计日志备份 机架式服务器 1U工控机 国产工控机 ldap LVM lvresize 磁盘扩容 pvcreate 路径解析 NVM Node Yarn PM2 云桌面 微软 AD域控 证书服务器 蓝耘科技 元生代平台工作流 ComfyUI 打不开xxx软件 无法检查其是否包含恶意软件 飞牛nas fnos mvc 小番茄C盘清理 便捷易用C盘清理工具 小番茄C盘清理的优势尽显何处? 教你深度体验小番茄C盘清理 C盘变红?!不知所措? C盘瘦身后电脑会发生什么变化? rime 支持向量机 黑客技术 流式接口 Tabs组件 TabContent TabBar TabsController 导航页签栏 滚动导航栏 RAGFlow g++ g++13 EasyConnect pycharm安装 linux子系统 忘记密码 gunicorn cpp-httplib docker命令大全 网工 充电桩平台 充电桩开源平台 3GPP 卫星通信 DIFY 服务器主板 AI芯片 mq less 文件存储服务器组件 rtc 医疗APP开发 app开发 材料工程 模拟器 string模拟实现 深拷贝 浅拷贝 经典的string类问题 三个swap SSL证书 代码调试 ipdb Python基础 Python技巧 NFC 近场通讯 智能门锁 雨云服务器 MQTT协议 消息服务器 代码 #影刀RPA# 大模型面经 华为机试 相差8小时 UTC 时间 可执行程序 嵌入式Linux IPC 实习 Linux find grep EMUI 回退 降级 腾讯云服务器 轻量应用服务器 linux系统入门 linux命令 佛山戴尔服务器维修 佛山三水服务器维修 框架 代理服务器 多端开发 智慧分发 应用生态 鸿蒙OS SoC DenseNet 风扇散热策略 曙光 海光 宁畅 中科可控 切换root 我的世界 我的世界联机 MAC 桌面快捷方式 跨平台 跨域请求 加解密 Yakit yaklang 云耀服务器 scapy bootstrap IPv4/IPv6双栈 双栈技术 网路规划设计 ensp综合实验 IPv4过渡IPv6 IPv4与IPv6 容器技术 idea tailscale derp derper 中转 triton 模型分析 线性代数 电商平台 UFW 服务器时间 流量运营 虚幻引擎 ecm bpm virtualbox GPUGEEK 问题解决 星河版 IDEA 软件商店 信创 livecd systemtools 脚本 欧标 OCPP lvs 线程同步 线程互斥 条件变量 idm crosstool-ng lua cocos2d 3dcoat issue 稳定性 看门狗 NTP服务器 anythingllm open-webui docker国内镜像 技能大赛 文件共享 MinIO 查看显卡进程 fuser IO模型 计算机学习路线 编程语言选择 comfyui comfyui教程 本地知识库部署 DeepSeek R1 模型 vpn scrapy eNSP 网络规划 VLAN 企业网络 子系统 网页服务器 web服务器 导航栏 muduo PTrade QMT 量化股票 风扇控制软件 Linux环境 archlinux kde plasma #STC8 #STM32 Spring Security 技术共享 vue在线预览excel和编辑 vue2打开解析xls电子表格 浏览器新开页签或弹框内加载预览 文件url地址或接口二进制文档 解决网页打不开白屏报错问题 TCP协议 我的世界服务器搭建 抗锯齿 欧拉系统 postgres Dify重启后重新初始化 GRUB引导 Linux技巧 医院门诊管理系统 Logstash 日志采集 动态库 GCC编译器 -fPIC -shared 互联网医院 socket VR手套 数据手套 动捕手套 动捕数据手套 备份SQL Server数据库 数据库备份 傲梅企业备份网络版 watchtower 磁盘镜像 服务器镜像 服务器实时复制 实时文件备份 can 线程池 lb 协议 百度云 win服务器架设 windows server dock 加速 数据库管理 OpenGL isaacgym ranger MySQL8.0 llama.cpp 银河麒麟桌面操作系统 av1 电视盒子 机顶盒ROM 魔百盒刷机 聊天室 Apache Beam 批流统一 案例展示 数据分区 容错机制 思科模拟器 Cisco 服务网格 istio csrutil mac恢复模式进入方法 恢复模式 飞牛 chrome devtools chromedriver HarmonyOS NEXT 原生鸿蒙 Python学习 Python编程 惠普服务器 惠普ML310e Gen8 惠普ML310e Gen8V2 合成模型 扩散模型 图像生成 appium ruby mybase seleium UDP UOS1070e VS Code 根服务器 android-studio 达梦 DM8 AD 域管理 集成 网站搭建 serv00 nosql 对比 meld DiffMerge fabric chfs ubuntu 16.04 端口聚合 windows11 SPI react native openvino 内网服务器 内网代理 内网通信 捆绑 链接 谷歌浏览器 youtube google gmail 流量 规格说明书 毕昇JDK 致远OA OA服务器 服务器磁盘扩容 实时云渲染 云渲染 3D推流 pyscenic 生信教程 Linux的基础开发工具 xfce HTTP 服务器控制 ESP32 DeepSeek 软负载 备选 调用 示例 bigdata regedit 开机启动 Alist mount 挂载 网盘 fast 端口 查看 ss deployment daemonset statefulset cronjob sqlite pgpool 静态NAT 模拟退火算法 田俊楠 可用性测试 集群管理 MDK 嵌入式开发工具 OpenManage 银河麒麟高级服务器 外接硬盘 Kylin IMX317 MIPI H265 VCU wsgiref Web 服务器网关接口 配置原理 Jellyfin 钉钉 IPv6 IPv6测试 IPv6测速 IPv6检测 IPv6查询 移动魔百盒 抓包工具 System V共享内存 进程通信 解决方案 Bandizip Mac解压 Mac压缩 压缩菜单 cpolar pxe 自定义登录信息展示 motd 美化登录 broadcom RockyLinux qt5 客户端开发 飞书 NLP模型 uniapp 历史版本 下载 autodl open Euler dde 源代码 内存管理 wpf deepseek r1 bat d3d12 post.io 企业邮箱 搭建邮箱 繁忙 解决办法 替代网站 汇总推荐 AI推理 docker部署翻译组件 docker部署deepl docker搭建deepl java对接deepl 翻译组件使用 mapreduce 定义 核心特点 优缺点 适用场景 Radius docker部署Python XCC Lenovo easyui Qwen3 qwen3 32b vllm saltstack 支付 微信支付 开放平台 企业网络规划 华为eNSP SSL 域名 ai工具 brew 阿里云ECS YashanDB 崖山数据库 yashandb LORA Charles SystemV GeneCards OMIM TTD GIS 遥感 WebGIS cocoapods URL PostgreSQL15数据库 多个客户端访问 IO多路复用 TCP相关API 静态IP h.264 accept 免费域名 域名解析 minecraft miniconda MI300x ubuntu24 vivado24 裸机装机 linux磁盘分区 裸机安装linux 裸机安装ubuntu 裸机安装kali 裸机 检索增强生成 文档解析 大模型垂直应用 logstash swift trea vue-i18n 国际化多语言 vue2中英文切换详细教程 如何动态加载i18n语言包 把语言json放到服务器调用 前端调用api获取语言配置文件 怎么卸载MySQL MySQL怎么卸载干净 MySQL卸载重新安装教程 MySQL5.7卸载 Linux卸载MySQL8.0 如何卸载MySQL教程 MySQL卸载与安装 能源 工厂方法模式 jdk11安装 jdk安装 openjdk11 openjdk11安装 矩池云 数据下载 数据传输 Ubuntu 24.04.1 轻量级服务器 Helm k8s集群 yum换源 VGG网络 卷积层 池化层 信创终端 中科方德 搭建个人相关服务器 es qemu libvirt Obsidian Dataview swoole 无法访问wordpess后台 打开网站页面错乱 linux宝塔面板 wordpress更换服务器 VM虚拟机 web开发 环境 非root 无桌面 MLLMs VLM gpt-4v risc-v 物理地址 页表 虚拟地址 匿名FTP 邮件传输代理 SSL支持 chroot监狱技术 电视剧收视率分析与可视化平台 Zoertier 内网组网 glm4 流程图 mermaid 联想开天P90Z装win10 增强现实 沉浸式体验 技术实现 案例分析 AR CPU架构 服务器cpu GoogLeNet 粘包问题 C++软件实战问题排查经验分享 0xfeeefeee 0xcdcdcdcd 动态库加载失败 程序启动失败 程序运行权限 标准用户权限与管理员权限 caddy 青少年编程 easyTier 组网 vCenter服务器 ESXi主机 监控与管理 故障排除 日志记录 苹果电脑装windows系统 mac安装windows系统 mac装双系统 macbook安装win10双 mac安装win10双系统 苹果电脑上安装双系统 mac air安装win qwen2vl 事件驱动 vmware tools 音乐库 Modbus TCP 模板 泛型编程 ArtTS proxy模式 烟花代码 烟花 元旦 deekseek win向maOS迁移数据 网络建设与运维 网络搭建 神州数码 神州数码云平台 云平台 Unity插件 OS 数字证书 签署证书 MacOS qtcreator h.265 web环境 动态域名 devmem AppLinking 应用间跳转 nginx默认共享目录 输入系统 homeassistant Qwen2.5-VL aac 多路转接 带外管理 ubantu ISO镜像作为本地源 游戏开发 项目部署 Erlang OTP gen_server 热代码交换 事务语义 hugo AI员工 xss 分布式训练 AI agent OpenSSH 红黑树封装map和set janus 状态模式 NVIDIA 极限编程 智能问答 向量数据库 Spring AI Milvus HAProxy 计算虚拟化 弹性裸金属 实时日志 logs 小智AI服务端 xiaozhi TTS 移动开发 语法 hexo sequoiaDB 能效分析 rtcp 烟雾检测 yolo检测 消防检测 access blocked 破解 查询数据库服务IP地址 SQL Server anonymous AI Agent 字节智能运维 whistle lrzsz LSTM 华为鸿蒙系统 ArkTS语言 Component 生命周期 条件渲染 Image图片组件 通用环境搭建 MySQL webview 鸿蒙NEXT 超级终端 多任务操作 提高工作效率 三次握手 macOS 知行EDI 电子数据交换 知行之桥 EDI 安装部署 milvus安装 flink mcp协议 go-zero mcp服务器 存储维护 NetApp存储 EMC存储 超融合 GRANT REVOKE Async注解 站群 多IP AzureDataStudio 网络库 nmcli 网络配置 tar.gz tar.xz linux压缩 李心怡 北亚数据恢复 oracle数据恢复 接口优化 机械臂 Qt QModbus client close Headless Linux Anolis nginx安装 linux插件下载 僵尸世界大战 游戏服务器搭建 大大通 第三代半导体 碳化硅 navicat 学习路线 bert paddle 架构与原理 手机 命令模式 接口返回 finalsheel 制造 漏洞报告生成 Web3 Telegram 基本指令 tidb 互联网实用编程指南 wifi驱动 midjourney 蜂窝网络 频率复用 射频单元 无线协议接口RAN 主同步信号PSS docker search Multi-Agent 火山引擎 sentinel figma LVS RK3568 solr Putty 花生壳 设计规范 干货分享 黑客工具 密码爆破 元服务 应用上架 代码复审 STL 容器化 Serverless 服务器正确解析请求体 搜狗输入法 Ubuntu 24.04 搜狗输入法闪屏 Ubuntu中文输入法 orbslam2 证书 签名 BCLinux python高级编程 Ansible elk stack 4 - 分布式通信、分布式张量 ABAP authing ardunio BLE java毕业设计 微信小程序医院预约挂号 医院预约 医院预约挂号 小程序挂号 sse_starlette Starlette Server-Sent Eve 服务器推送事件 西门子PLC 通讯 AWS 影视app ANDROID_HOME zshrc IP地址 计算机基础 数字比特流 模拟信号 将二进制数据映射到模拟波形上 频谱资源 振幅频率相位 载波高频正弦波 mujoco 进程池实现 中文输入法 Metastore Catalog pythonai PlaywrightMCP 零售 大厂程序员 硅基计算 碳基计算 认知计算 生物计算 AGI 系统架构设计 软件哲学 程序员实现财富自由 function address 函数 地址 CAD瓦片化 栅格瓦片 矢量瓦片 Web可视化 DWG解析 金字塔模型 树莓派项目 华为昇腾910b3 系统内核 Linux版本 Linux的进程概念 站群服务器 MCP 服务器 JADX-AI 插件 rtmp 光电器件 LED 访问公司内网 自定义shell当中管道的实现 匿名和命名管道 Apache Flume 配置优化 高级功能 大数据工具集成 5分钟快速学 docker入门 高可用 dockerfile RNG 状态 可复现性 随机数生成 物理服务器 服务器租用 云服务器租用 物理机租用 http状态码 请求协议 linq containerd jQuery 排序算法 选择排序 热键 gitlab服务器 机器人仿真 模拟仿真 MateBook