揭开pkill的秘密:在Linux中杀死进程的完整指南

揭开pkill的秘密:在Linux中杀死进程的完整指南

  • 一、前言
  • 二、进程管理基础知识
    • 2.1、什么是进程?
    • 2.2、进程管理的原理和目的
    • 2.3、进程状态和标识符
  • 三、理解Linux pkill命令
    • 3.1、pkill命令的概述和作用
    • 3.2、与kill命令的对比
    • 3.3、常见的pkill命令选项和参数
  • 四、用法示例:建立第一个pkill命令
    • 4.1、定位和终止具体进程
    • 4.2、通过进程名或进程组ID终止进程
    • 4.3、使用通配符终止多个进程
  • 五、进阶技巧:进一步掌握pkill命令
    • 5.1、结合其他命令实现精确进程定位
    • 5.2、使用正则表达式匹配进程名
    • 5.3、使用信号和选项进行更精细的进程控制
  • 总结

博主简介


💡一个热爱分享高性能服务器后台开发知识的博主,目标是通过理论与代码实践的结合,让世界上看似难以掌握的技术变得易于理解与掌握。技能涵盖了多个领域,包括C/C++、Linux、Nginx、MySQL、Redis、fastdfs、kafka、Docker、TCP/IP、协程、DPDK等。
👉
🎖️ CSDN实力新星、CSDN博客专家、华为云云享专家、阿里云专家博主
👉


一、前言

pkill命令在Linux系统中是一个重要的进程管理工具。它是用于终止或杀死进程的强大工具。它不仅可以帮助解决系统故障和性能问题,还可以优化资源利用和自动化任务。掌握pkill命令的用法和技巧可以更好地管理和控制系统中的进程。

  1. 进程管理:pkill命令是Linux系统中管理进程的关键工具之一。它允许用户通过进程名称、进程ID或其他条件来定位和终止运行的进程。这对于控制和管理系统进程的数量和状态至关重要,从而维护系统的稳定性和性能。

  2. 故障排除:当系统出现问题或异常时,pkill命令可以帮助定位并终止可能引起故障的进程。它特别适用于停止无响应或占用过多系统资源的进程,从而恢复系统的正常运行。

  3. 资源优化:pkill命令可以帮助系统管理员优化系统资源的使用。通过终止不必要或无效的进程,可以释放系统资源并提高系统的性能和响应能力。

  4. 批处理和自动化:pkill命令可以与其他命令和脚本结合使用,实现批处理和自动化任务。通过编写脚本以定期或按需终止特定进程,可以优化系统的运行和管理。

  5. 安全控制:pkill命令允许有限的用户(例如管理员)终止其他用户的进程。这对于确保系统的安全性和控制非法或恶意进程的活动至关重要。

二、进程管理基础知识

2.1、什么是进程?

进程是计算机中正在执行的程序实例。它是计算机系统中最基本的执行单位之一。当我们运行一个程序时,操作系统会为该程序创建一个进程,该进程将在计算机的内存中分配一块独立的空间,用于存储程序的指令、数据和运行时状态。

每个进程都有自己的进程标识符(PID),用于唯一标识和识别该进程。进程还具有其他属性,如进程优先级、父子关系等。

进程在计算机系统中起着重要的作用。它们可以执行各种任务,包括运行应用程序、处理输入/输出、管理系统资源、协调进程间的通信等。不同的进程可以同时运行在系统中,相互独立地执行任务。

操作系统通过进程管理来控制和监视进程的运行。它分配和管理进程的资源,如内存、CPU时间片和文件IO等。通过进程管理,操作系统可以对进程进行创建、终止、中断和等待等操作,以便有效地调度和控制计算机系统中的资源利用。

2.2、进程管理的原理和目的

进程管理的原理和目的是确保计算机系统能够高效、安全地运行多个进程。通过调度、通信、同步和状态管理等机制,操作系统能够实现资源共享、提供良好的用户体验,并管理系统资源的使用和分配。

  1. 原理:

    • 进程调度:操作系统通过调度算法决定进程在CPU上的执行顺序。调度算法可以基于不同策略,如先来先服务、最短作业优先、时间片轮转等。
    • 进程通信:操作系统提供机制使进程之间能够相互通信和共享信息。常见的通信方式包括管道、消息队列、共享内存和信号量等。
    • 进程同步:操作系统提供机制保证多个进程之间的协作和同步。例如,可以使用锁和信号量来控制对共享资源的访问。
    • 进程调度:操作系统跟踪和管理进程的状态,包括就绪、运行、阻塞等。它根据资源需求和优先级等因素来决定何时执行、挂起、恢复或终止进程。
  2. 目的:

    • 实现资源共享:进程管理确保多个进程能够共享系统资源,如CPU、内存、文件系统等。通过调度算法和资源分配机制,系统可以公平分配和有效利用资源。
    • 提供良好的用户体验:进程管理的目的之一是确保系统的稳定性和响应能力。通过合理的调度和资源管理,系统能够快速响应用户的请求并提供流畅的用户体验。
    • 实现并发和并行:进程管理使操作系统能够同时运行多个进程,从而实现并发和并行处理任务。这提高了系统的效率和吞吐量。
    • 提供安全性和隔离性:进程管理确保不同进程之间的隔离和安全性。每个进程都有自己的内存空间和访问权限,从而防止进程间的干扰和恶意访问。
    • 管理系统资源:进程管理有助于监控和管理系统资源的使用情况。通过跟踪进程的状态和资源消耗,操作系统可以进行资源优化和规划。

2.3、进程状态和标识符

在计算机操作系统中,进程具有不同的状态和标识符,用于描述和唯一标识每个进程。进程的状态和标识符对操作系统的进程管理至关重要。通过跟踪进程的状态,操作系统可以了解进程的执行情况并进行适当的资源分配和调度决策。而进程标识符则允许操作系统在进程之间进行准确的区分和操作,如终止、挂起和优先级调整等。

  1. 进程状态:

    • 就绪状态(Ready):进程已准备好执行,但尚未获得CPU的执行时间片。它等待调度器选择它进行执行。
    • 运行状态(Running):进程正在CPU上执行。
    • 阻塞状态(Blocked):进程被暂时挂起,等待某个事件的发生或资源的可用性。例如,等待用户输入、等待磁盘I/O完成等。在这种状态下,进程不会占用CPU资源。
    • 终止状态(Terminated):进程已经完成执行或被手动终止。
  2. 进程标识符(PID):

    • 进程标识符是用于唯一标识和识别每个进程的数字。它是一个非负整数。
    • 在一个操作系统会话中,每个进程都有自己独特的PID。
    • PID通常是按照进程创建的顺序进行分配,较小的PID通常是先创建的进程。
    • PID可以用于在进程管理和调度中引用特定的进程,例如通过命令行执行操作。

三、理解Linux pkill命令

3.1、pkill命令的概述和作用

  1. 概述:

    • pkill命令是一个强大的进程管理工具,属于Linux系统中的进程管理命令之一。
    • 它可以根据进程名、进程用户名、进程组ID等准确定位和终止进程。
    • pkill命令提供了灵活的选项和参数,可用于精确匹配目标进程,并支持正则表达式等高级定位方法。
    • pkill命令可以使用信号来终止进程,默认使用的是SIGTERM信号,也可以选择使用其他终止信号。
  2. 作用:

    • 终止单个进程:pkill命令可以通过进程名或进程ID定位并终止指定的单个进程。例如,可以使用pkill命令终止一个前台运行的程序。
    • 批量终止进程:pkill命令可以使用通配符或正则表达式匹配多个进程名称,并批量终止这些进程。这在需要同时关闭多个相关进程时非常有用。
    • 灵活的进程定位:pkill命令支持多种定位方法,如进程名、进程用户名、进程组ID等,能够根据需求准确定位特定进程。
    • 自定义信号终止:pkill命令允许指定不同的终止信号来结束进程。可以选择使用不同的信号,如SIGTERM、SIGKILL等,以达到不同的终止效果。

pkill命令是用于终止或杀死进程的重要工具。它可以准确定位和终止特定的进程,支持批量终止操作,并提供灵活的定位和终止选项,能够有效地管理和控制运行的进程。

3.2、与kill命令的对比

pkill和kill命令都可以用于终止或杀死进程,但它们在用法和功能上略有不同。

  1. 定位进程:

    • pkill命令:使用进程名或其他条件(如进程用户名、进程组ID)来定位进程,可以通过模糊匹配和正则表达式来选择多个进程。
    • kill命令:需要使用进程ID(PID)来定位和终止特定进程,必须事先获取并指定PID。
  2. 调用方式:

    • pkill命令:直接使用pkill命令加上进程名或其他条件,如pkill <进程名>pkill -u <用户名>
    • kill命令:使用kill命令加上信号和进程ID,如kill <信号> <PID>
  3. 信号:

    • pkill命令:可以使用默认的SIGTERM信号来终止进程,也可以通过-<信号>选项来指定其他终止信号。
    • kill命令:必须显式指定要发送的信号,如使用-9(SIGKILL)来强制终止进程。
  4. 灵活性:

    • pkill命令:提供了更多的定位和终止选项,如使用正则表达式、通配符、进程组ID等,可以更灵活地选择和终止多个进程。
    • kill命令:必须显式指定进程ID,并且信号的发送较为精确,对于批量终止进程需要额外的逻辑或循环处理。
  5. 使用场景:

    • pkill命令:适用于快速终止一个或多个进程,尤其是在需要根据进程名称或其他条件来选择进程时。
    • kill命令:适用于需要手动指定信号和进程ID的情况,或者需要对特定进程进行更精确控制的情况。

pkill和kill命令都可以用于终止进程,但pkill命令更灵活和方便,尤其适用于根据进程名称、进程组ID等条件进行定位和终止进程的情况。而kill命令则更适用于需要手动指定PID及信号的情况下进行进程终止。

3.3、常见的pkill命令选项和参数

pkill命令提供了一些常用的选项和参数,用于定位和终止进程。

  1. -l, --list:显示所有可用的信号列表。示例:pkill -l

  2. -e, --exact:精确匹配进程名称,只终止完全匹配的进程。示例:pkill -e <进程名>

  3. -f, --full:匹配进程名及其参数,可用于定位带有特定参数的进程。示例:pkill -f <进程参数>

  4. -u, --euid:根据进程的有效用户ID(EUID)来定位和终止进程。示例:pkill -u <用户ID>

  5. -g, --pgroup:根据进程组ID来定位和终止进程。示例:pkill -g <进程组ID>

  6. -t, --terminal:根据终端ID来定位和终止进程。示例:pkill -t <终端ID>

  7. -c, --count:显示匹配到的进程数量,而不执行终止操作。示例:pkill -c <进程名>

  8. -x, --exact-match:仅匹配完全相同的进程名,不会匹配到子进程。示例:pkill -x <进程名>

  9. -n, --newest:终止最新的一个匹配进程。示例:pkill -n <进程名>

四、用法示例:建立第一个pkill命令

4.1、定位和终止具体进程

  1. 根据进程名定位和终止:

    • 命令格式:pkill <进程名>
    • 示例1:pkill firefox。该命令将会定位并终止名为"firefox"的进程。
    • 示例2:pkill -f “python script.py”。这条命令将会通过进程名及其参数来定位并终止所运行的"python script.py"脚本进程。
  2. 根据进程ID定位和终止:

    • 命令格式:pkill -PID <进程ID>
    • 示例:pkill -PID 1234。该命令将会根据进程ID为1234来定位并终止相应的进程。
    • 示例2:pkill --signal 9 -PID 5678。这条命令将会使用SIGKILL信号来终止进程ID为5678的进程。

4.2、通过进程名或进程组ID终止进程

  1. 根据进程名终止进程:

    • 示例1:pkill firefox。这条命令将终止名为"firefox"的所有进程。
    • 示例2:pkill -e -f “python script.py”。这条命令将终止所有运行"python script.py"脚本进程,并确保精确匹配进程名及其参数。
  2. 根据进程组ID终止进程:

    • 示例1:pkill -g 1234。这条命令将终止进程组ID为1234的所有进程。
    • 示例2:pkill --signal 9 -g 5678。这条命令将使用SIGKILL信号,终止进程组ID为5678的所有进程。

4.3、使用通配符终止多个进程

使用通配符来终止多个进程是pkill命令的一种常见用法。

  1. 终止特定名称开头的进程:

    • 示例:pkill firefox*
      这条命令将会终止所有以"firefox"开头的进程,如"firefox", "firefox-esr"等。
  2. 终止特定名称结尾的进程:

    • 示例:pkill *script.sh
      这条命令将会终止所有以"script.sh"结尾的进程,如"test_script.sh", "backup_script.sh"等。
  3. 终止包含特定字符串的进程:

    • 示例:pkill keyword
      这条命令将会终止进程名中包含"keyword"的所有进程,如"test_keyword_process", "process_with_keyword"等。

五、进阶技巧:进一步掌握pkill命令

5.1、结合其他命令实现精确进程定位

  1. pgrep命令结合grep命令:

    • 示例:pkill -f “$(pgrep -f “script.py”)”
    • 这条命令将会通过pgrep命令结合grep命令来定位名为"script.py"的进程,并使用pkill命令终止它们。
  2. ps命令结合grep命令和awk命令:

    • 示例:pkill -u username “$(ps -ef | grep “python” | awk ‘{print $2}’)”
    • 这条命令将会通过ps命令结合grep命令和awk命令来定位用户名为"username"的所有python进程,并使用pkill命令终止它们。
  3. pidof命令结合xargs命令:

    • 示例:pidof “process_name” | xargs pkill
    • 这条命令将会使用pidof命令找到名为"process_name"的进程ID,并通过xargs命令将进程ID传递给pkill命令来终止这些进程。

5.2、使用正则表达式匹配进程名

当使用pkill命令结合正则表达式来匹配进程名时,可以使用一些常见的元字符和模式来实现更精确的匹配。

  1. 精确匹配:

    • 通过在正则表达式中直接指定具体的进程名来精确匹配,例如:“pkill -f ^processname$”。
  2. 通配符:

    • 在正则表达式中使用通配符可以匹配任意字符,常用的通配符有:
      • .:匹配任意单个字符。
      • *:匹配前面的字符零次或多次。
      • +:匹配前面的字符一次或多次。
      • ?:匹配前面的字符零次或一次。
  3. 字符类:

    • 使用字符类可以匹配指定范围内的字符,常用的字符类有:
      • [abc]:匹配字符 a、b 或 c。
      • [a-z]:匹配任意小写字母。
      • [A-Z]:匹配任意大写字母。
      • [0-9]:匹配任意数字。
  4. 括号和逻辑运算符:

    • 使用括号和逻辑运算符可以构建更复杂的匹配模式,可用的逻辑运算符包括:
      • |:匹配两个表达式中的任意一个。
      • ():将多个表达式组合起来,形成一个子组。
  5. 使用边界符号:

    • 边界符号可用于限定匹配的范围,常用的边界符号有:
      • ^:匹配行的开头。
      • $:匹配行的结尾。
      • \b:匹配单词的边界。

示例1:

pkill -f "pattern."

这条命令将会使用-pkill命令结合正则表达式,匹配进程名中以"pattern"开头并紧跟任意字符(.)的进程,并终止这些进程。

示例2:

pkill -f "(process1|process2)"

这条命令将会使用-pkill命令结合正则表达式,匹配进程名为"process1"或"process2"的进程,并终止这些进程。

5.3、使用信号和选项进行更精细的进程控制

  1. 使用信号控制进程:

    • -l, --list:显示所有可用的信号列表。
      示例:pkill -l

    • -s, --signal <信号>:指定要发送的信号。示例:pkill -s SIGTERM <进程名>

    • 常用的信号:

      • SIGTERM:请求终止进程(默认信号)。
      • SIGKILL:立即终止进程(强制终止,无法被阻止)。
      • SIGHUP:挂断连接,终止进程。
      • SIGINT:终止进程(如Ctrl+C)。
      • SIGSTOP:暂停进程(无法被捕获或忽略)。
  2. 使用选项控制进程:

    • -e, --exact:精确匹配进程名称(仅终止完全匹配的进程)。
      示例:pkill -e <进程名>

    • -f, --full:匹配进程名及其参数(可用于定位带有特定参数的进程)。
      示例:pkill -f <进程参数>

    • -u, --euid <用户ID>:根据进程的有效用户ID(EUID)定位和终止进程。
      示例:pkill -u <用户ID>

    • -g, --pgroup <进程组ID>:根据进程组ID定位和终止进程。
      示例:pkill -g <进程组ID>

    • -t, --terminal <终端ID>:根据终端ID定位和终止进程。
      示例:pkill -t <终端ID>

总结

  1. 使用进程名终止进程:pkill命令允许使用进程名来终止进程。

  2. 使用进程ID终止进程:pkill命令也可以使用进程ID(PID)来终止进程。

  3. 使用信号终止进程:通过指定信号可以终止进程。例如,使用SIGKILL信号(信号编号为9)强制终止进程:pkill -9 process_name。

  4. 使用通配符匹配进程名:可以使用通配符(如星号*)来匹配多个进程名。

  5. 终止特定用户的进程:使用-pkill命令与-u选项可以终止特定用户的进程。

  6. 终止包含特定字符串的进程:使用-pkill命令与-f选项,可以终止进程名或命令行参数中包含特定字符串的进程。

  7. 使用精确选项终止进程:-pkill命令提供了精确匹配的选项,如使用-x选项精确匹配进程名,使用-f选项匹配进程名和参数。

  8. 谨慎操作:在使用pkill命令时,谨慎选择匹配条件,观察进程信息,并避免误杀重要进程。在终止进程之前,最好先使用pgrep命令测试匹配的准确性。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/49772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PCAP01介绍和STM32模拟SPI驱动

一.芯片介绍 Pcap01是德国acam公司设计的一款革命性的电容测量芯片。该芯片 内部有DSP计算单元&#xff0c;可以直接将电容元件接到Pcap01芯片&#xff0c;然后芯片计算出容值大小&#xff0c;通过SPI总线将电容容值数据传送给CPU&#xff0c;电容测量完全数字化。 二,测量原…

无脑入门pytorch系列(五)—— nn.Dropout

本系列教程适用于没有任何pytorch的同学&#xff08;简单的python语法还是要的&#xff09;&#xff0c;从代码的表层出发挖掘代码的深层含义&#xff0c;理解具体的意思和内涵。pytorch的很多函数看着非常简单&#xff0c;但是其中包含了很多内容&#xff0c;不了解其中的意思…

docker启用cgroup v2

要求 本人的操作系统是kali&#xff0c;基于debian docker info如果你这里是2那么说明启用了&#xff0c;如果是1&#xff0c;那么就未启用 对于Docker来说&#xff0c;Cgroups v2的使用需要满足以下条件&#xff1a; Linux内核版本在4.15以上。 uname -r 系统已经启用Cgro…

前端处理图片文件的方法

在项目开发过程中&#xff0c;有一个需求&#xff0c;需要前端对上传的图片进行处理&#xff0c;以字符串的形式传给后端&#xff0c;实现效果如下&#xff1a; 1.上传图片的组件 在该项目中&#xff0c;使用了element plus组件库 <el-uploadv-model:file-list"fileL…

c++(8.23)类,this指针,构造函数,析构函数,拷贝构造函数

设计一个Per类&#xff0c;类中包含私有成员&#xff1a;姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员&#xff1a;成绩、Per类对象 p1&#xff0c;设计这两个类的构造函数、析构函数和拷贝构造函数。 #include <iostream>u…

​8th参考文献:[8]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑工业出版社,2022.

​&#xff18;th参考文献&#xff1a;&#xff3b;&#xff18;&#xff3d;许少辉&#xff0e;乡村振兴战略下传统村落文化旅游设计&#xff3b;&#xff2d;&#xff3d;北京&#xff1a;中国建筑工业出版社&#xff0c;&#xff12;&#xff10;&#xff12;&#xff12;&a…

notebook写好代码后直接生成PPT报告(html格式)

注&#xff1a;记录使用notebook直接生成html格式的PPT报告&#xff08;html格式&#xff09;。 前置内容&#xff1a;如果直接导出没有Reveal.js.slides(.slides.html)选项&#xff0c;需要安装插件nbextensions。 安装参考&#xff1a;插件nbextensions安装 操作步骤&#x…

PostgreSQL-UDF用户自定义函数-扩展插件

目录 PostgreSQL-UDF用户自定义函数-扩展插件零、前置条件一、创建 .c 和 .sql 文件创建.c文件创建.sql文件 二、创建 .control 和 Makefile 文件创建 .control 文件创建 Makefile 文件 三、编译 & 链接四、psql&#xff08;或者其他PG backend&#xff09;中创建扩展 Post…

【C++杂货铺】探索string的底层实现

文章目录 一、成员变量二、成员函数2.1 默认构造函数2.2 拷贝构造函数2.3 operator2.4 c_str()2.5 size()2.6 operator[ ]2.7 iterator2.8 reserve2.9 resize2.10 push_back2.11 append2.12 operator2.13 insert2.14 erase2.15 find2.16 substr2.17 operator<<2.18 opera…

【微服务】spring 条件注解从使用到源码分析详解

目录 一、前言 二、spring 条件注解概述 2.1 条件注解Conditional介绍 2.2 Conditional扩展注解 2.2.1 Conditional扩展注解汇总 三、spring 条件注解案例演示 3.1 ConditionalOnBean 3.2 ConditionalOnMissingBean 3.2.1 使用在类上 3.2.2 使用场景补充 3.3 Condit…

jvm-类加载子系统

1.内存结构概述 类加载子系统负责从文件系统或网络中加载class文件&#xff0c;class文件在文件开头有特定的文件标识 ClassLoader只负责class文件的加载&#xff0c;至于它是否运行&#xff0c;则由Execution Engine决定 加载的类信息存放于一块称为方法区的内存空间&#xff…

什么是安全测试报告,怎么获得软件安全检测报告?

安全测试报告 软件安全测试报告&#xff1a;是指测试人员对软件产品的安全缺陷和非法入侵防范能力进行检查和验证的过程&#xff0c;并对软件安全质量进行整体评估&#xff0c;发现软件的缺陷与 bug&#xff0c;为开发人员修复漏洞、提高软件质量奠定坚实的基础。 怎么获得靠谱…

Hadoop学习:深入解析MapReduce的大数据魔力之数据压缩(四)

Hadoop学习&#xff1a;深入解析MapReduce的大数据魔力之数据压缩&#xff08;四&#xff09; 4.1 概述1&#xff09;压缩的好处和坏处2&#xff09;压缩原则 4.2 MR 支持的压缩编码4.3 压缩方式选择4.3.1 Gzip 压缩4.3.2 Bzip2 压缩4.3.3 Lzo 压缩4.3.4 Snappy 压缩4.3.5 压缩…

学会Mybatis框架:让你的代码更具灵活性、可维护性、安全性和高效性【二.动态SQL】

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Mybatis的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Mybatis动态SQL如何应用 1.需求 2.…

分布式锁 总结

分布式锁 在应用开发中&#xff0c;特别是web工程开发&#xff0c;通常都是并发编程&#xff0c;不是多进程就是多线程。这种场景下极易出现线程并发性安全问题&#xff0c;此时不得不使用锁来解决问题。在多线程高并发场景下&#xff0c;为了保证资源的线程安全问题&#xff0…

五、修改官方FreeRTOS例程(STM32F1)

1、官方源码下载 (1)进入FreeRTOS官网&#xff1a;FreeRTOS官网 (2)下载FreeRTOS。(选择带示例的下载) 2、删减目录 (1)下载后解压的FreeRTOS文件如下图所示。 (2)删除下图中红框勾选的文件。 FreeRTOS-Plus&#xff0c;FreeRTOS的生态文件&#xff0c;非必需的。tools&…

【数据库】表操作 习题总结

目录 关系建表 数据库sql的执行顺序 内外连接的写法 1.设计一张商品表 2.设计一张老师表 3.设计一张图书表 4.查询练习 5.查询练习 6.设计一个考勤系统 7.设计一个学校宿舍管理系统 8.设计一个车辆违章系统 9.设计一个学校食堂管理系统 10.有一张员工表emp&#xf…

开源TTS+gtx1080+cuda11.7+conda+python3.9吊打百度TTS

一、简介 开源项目&#xff0c;文本提示的生成音频模型 https://github.com/suno-ai/bark Bark是由Suno创建的基于变换器的文本到音频模型。Bark可以生成极为逼真的多语种演讲以及其他音频 - 包括音乐、背景噪音和简单的声音效果。该模型还可以产生非言语沟通&#xff0c;如…

Android 11 Display亮灭屏

系统休眠唤醒的时候会涉及到亮灭屏&#xff0c;下面分析下系统&#xff08;高通8155平台&#xff09;Display亮灭屏流程 1. 点亮屏幕 点亮屏幕入口在framework/base/下面LightsService.java&#xff0c;然后通过调用SurfaceControl.java ,最终调用到framework/native下面的Sur…

【洁洁送书第五期】为什么我们要了解可观测性工程

导读 可观测性已成为一个热门话题&#xff0c;并广受关注。随着它的普及&#xff0c;“可观测性”不幸被误作“监控”或“系统遥测”的同义词。可观测性是软件系统的一个特征。而且&#xff0c;只有当团队采用新的实践进行持续开发时&#xff0c;才能在生产软件系统中有效利用这…