news 2026/3/12 1:53:12

如何停止FSMN VAD服务?两种安全关闭方法步骤详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何停止FSMN VAD服务?两种安全关闭方法步骤详解

如何停止FSMN VAD服务?两种安全关闭方法步骤详解

1. FSMN VAD语音检测服务简介

FSMN VAD是阿里达摩院FunASR项目中的语音活动检测模型,能够精准识别音频中的有效语音片段。该系统由开发者“科哥”进行WebUI二次开发后,提供了更友好的操作界面和批量处理能力,广泛应用于会议录音分析、电话质检、音视频内容剪辑等场景。

在实际使用过程中,完成语音检测任务后需要正确关闭服务进程,避免资源占用或端口冲突。本文将详细介绍两种经过验证的安全关闭方式,确保你可以干净、彻底地终止FSMN VAD服务而不影响系统稳定性。


2. 方法一:通过终端快捷键终止(推荐新手)

2.1 操作前提条件

  • 你正在通过命令行启动了FSMN VAD服务
  • 当前终端窗口仍处于运行状态
  • 服务监听端口为默认的7860

这是最直接也是最安全的关闭方式,特别适合刚接触Linux/Shell操作的用户。

2.2 关闭步骤详解

  1. 确认服务运行中打开浏览器访问http://localhost:7860,如果能看到Gradio界面,则说明服务正在运行。

  2. 回到启动终端找到最初执行/bin/bash /root/run.sh命令的那个终端窗口。通常你会看到类似以下输出:

    Running on local URL: http://0.0.0.0:7860
  3. 发送中断信号在该终端中按下组合键:

    Ctrl + C
  4. 等待优雅退出系统会自动执行清理流程,包括:

    • 停止HTTP服务器
    • 释放GPU/CPU资源(如有)
    • 断开模型加载句柄 终端将显示退出日志,最后返回shell提示符。

重要提示:不要强制关闭终端窗口!务必使用Ctrl+C让程序正常退出,否则可能导致端口残留占用。


3. 方法二:通过端口杀进程(适用于后台运行)

3.1 适用场景说明

当你以如下方式启动服务时:

nohup /bin/bash /root/run.sh &

或者不小心关闭了原终端,此时无法使用Ctrl+C,就必须采用基于端口查找并杀死进程的方式。

这种方式利用FSMN VAD默认监听的端口7860来定位其进程ID(PID),然后执行终止命令。

3.2 完整操作流程

步骤1:查找占用7860端口的进程

执行以下命令查看哪个进程占用了7860端口:

lsof -i :7860

输出示例:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python3 12345 root 3u IPv4 98765 0t0 TCP *:7860 (LISTEN)

其中PID列的12345就是我们要终止的进程号。

步骤2:终止指定进程

可以直接使用kill命令结束该进程:

kill -9 12345

但更推荐将其合并为一条自动化命令,省去手动查PID的步骤:

lsof -ti:7860 | xargs kill -9

这条命令的作用是:

  • lsof -ti:7860:只输出占用7860端口的进程ID
  • xargs kill -9:将上一步得到的PID传给kill -9强制终止
步骤3:验证服务是否已关闭

再次尝试访问http://localhost:7860,页面应无法打开。同时可重复执行:

lsof -i :7860

若无任何输出,表示端口已释放,服务成功停止。


4. 进阶技巧与常见问题解决

4.1 自定义端口时如何关闭?

如果你修改了默认端口(例如改成了8080),只需替换命令中的端口号即可:

lsof -ti:8080 | xargs kill -9

建议在修改启动脚本时做好记录,便于后续维护。

4.2 多实例运行时的关闭策略

假设你同时启动了多个FSMN VAD服务(如分别监听7860和7861),应按需关闭:

  • 关闭第一个实例:
    lsof -ti:7860 | xargs kill -9
  • 关闭第二个实例:
    lsof -ti:7861 | xargs kill -9

切勿使用pkill python这类粗暴命令,可能误杀其他关键服务。

4.3 杀进程失败怎么办?

遇到“Operation not permitted”错误时,可能是权限不足。请在命令前加上sudo

sudo lsof -ti:7860 | xargs sudo kill -9

此外,检查是否已有其他用户启动了同名服务,可通过以下命令查看完整进程信息:

ps aux | grep run.sh

4.4 防止端口被占用的小贴士

重启服务前建议先执行一次端口清理:

lsof -ti:7860 | xargs kill -9 || echo "端口7860空闲"

这样即使上次未正常关闭,也能保证新服务顺利启动。


5. 总结

5.1 两种关闭方式对比回顾

方法适用场景安全性推荐指数
Ctrl+C终止前台运行、终端可用⭐⭐⭐⭐⭐★★★★★
lsof + kill后台运行、终端丢失⭐⭐⭐☆☆★★★★☆
  • 首选方案:始终优先使用Ctrl+C,让程序自然释放资源。
  • 备用方案:当服务在后台运行或终端断开时,使用端口杀进程法补救。

5.2 实践建议

  1. 日常调试阶段建议以前台方式运行,方便随时中断;
  2. 生产环境若需长期运行,可结合screentmux管理会话;
  3. 编写一键启停脚本,提升操作效率,例如创建stop.sh文件:
    #!/bin/bash echo "正在停止FSMN VAD服务..." lsof -ti:7860 | xargs kill -9 echo "服务已停止"

掌握正确的服务关闭方法,不仅能避免端口冲突,还能保护系统资源不被浪费。无论是本地测试还是部署上线,这些技能都至关重要。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/10 16:00:37

攻防世界: ics-05

攻防世界: ics-05 本文知识点 preg_replace可执行代码漏洞的使用 preg_replace有三个参数,第一个参数是正则的模式字符串,第二个是替换的数据,第三个是正则模式字符串要去匹配的字符串。 当正则的模式字符串与要匹配的字符串匹配…

作者头像 李华
网站建设 2026/3/9 23:27:51

BetterNCM终极改造指南:从普通播放器到全能音乐工作站

BetterNCM终极改造指南:从普通播放器到全能音乐工作站 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 你是否觉得网易云音乐的界面太过单调?想要更多个性化功能…

作者头像 李华
网站建设 2026/3/7 8:54:10

快速验证微调效果:Qwen2.5-7B推理测试全流程演示

快速验证微调效果:Qwen2.5-7B推理测试全流程演示 1. 为什么这次微调验证值得你花十分钟? 你有没有遇到过这样的情况:辛辛苦苦跑完一轮LoRA微调,结果一测试发现模型还是固执地自称“阿里云开发的”,完全没记住你精心设…

作者头像 李华
网站建设 2026/3/5 20:41:43

PinWin:让任意窗口始终置顶的终极解决方案

PinWin:让任意窗口始终置顶的终极解决方案 【免费下载链接】PinWin Pin any window to be always on top of the screen 项目地址: https://gitcode.com/gh_mirrors/pin/PinWin 在Windows多任务处理中,你是否经常因为窗口切换而打断工作流程&…

作者头像 李华
网站建设 2026/3/8 1:16:43

深度启动盘制作工具完全攻略:从零基础到精通使用

深度启动盘制作工具完全攻略:从零基础到精通使用 【免费下载链接】deepin-boot-maker 项目地址: https://gitcode.com/gh_mirrors/de/deepin-boot-maker 还在为系统安装、数据救援或硬件测试而困扰吗?深度启动盘制作工具正是你需要的终极解决方案…

作者头像 李华
网站建设 2026/3/4 11:22:19

PDF视觉差异对比工具:让文档比较变得简单高效

PDF视觉差异对比工具:让文档比较变得简单高效 【免费下载链接】diff-pdf A simple tool for visually comparing two PDF files 项目地址: https://gitcode.com/gh_mirrors/di/diff-pdf 在日常工作中,你是否曾经遇到过这样的情况:收到…

作者头像 李华