解决Ubuntu使用supervisor管控的程序不能使用麦克风的问题

项目场景:

Ubuntu服务器有时候可能更多的是用来跑服务,但是如果用来调取麦克风又担心自己的程序崩溃掉,你可能自然想到使用supervisor来管控自己的程序,但是似乎并不是那么好用。


问题描述

Ubuntu正常使用机器的能力是没有问题的,比如CPU、GPU等,唯独有一些东西有问题,比如麦克风。如果你的程序是使用root启动的,你就不能使用麦克风,同样也不意味着你把user设置为普通用户就能正常使用。


原因分析:

处于安全的考虑,Ubuntu不允许root用户使用麦克风等硬件,如果你的程序是使用root用户启动,你就不能正常使用麦克风。


解决方案:

解决方法很简单,我使用普通用户不就行了吗。恐怕也不完全行,实际上你需要切换用户才能使用麦克风设备,因为你需要初始化用户环境变量。默认supervisor是不自动切换用户环境变量的,你只能手动切。平常使用的ssh和桌面都初始化了用户环境变量,是可以直接使用麦克风的。

下面是一个简单的python程序用来获取可用麦克风设备。需要使用sounddevice这个module,没装的手动装下。

pip3 install sounddevice -i https://mirrors.aliyun.com/pypi/simple
import time
import sounddevice as sdprint(sd.query_devices())while True:time.sleep(1)

下面是成功的设备列表:

  0 HDA Intel HDMI: 0 (hw:0,3), ALSA (0 in, 8 out)1 HDA Intel HDMI: 1 (hw:0,7), ALSA (0 in, 8 out)2 HDA Intel HDMI: 2 (hw:0,8), ALSA (0 in, 8 out)3 HDA Intel PCH: CX20751/2 Analog (hw:1,0), ALSA (2 in, 2 out)4 hdmi, ALSA (0 in, 8 out)5 pulse, ALSA (32 in, 32 out)
* 6 default, ALSA (32 in, 32 out)

上面是我的笔记本的设备列表,不用管打印了什么一定要出现星号(*)标注的设备。如果没有就是访问权限的问题。

下面是失败的设备列表:

< 0 HDA Intel HDMI: 0 (hw:0,3), ALSA (0 in, 8 out)1 HDA Intel HDMI: 1 (hw:0,7), ALSA (0 in, 8 out)2 HDA Intel HDMI: 2 (hw:0,8), ALSA (0 in, 8 out)
> 3 HDA Intel PCH: CX20751/2 Analog (hw:1,0), ALSA (2 in, 2 out)4 hdmi, ALSA (0 in, 8 out)

看到了没有,5跟6没有了,星号也没有了。说明你的程序访问不了麦克风了。

注意:不同的设备列表可能不一样!

终极大法:
下面贴出supervisor的program配置

[program:input_output]
directory=/home/anold/XTTS
command=su - <普通用户> -c "cd /home/anold/XTTS && python3 -u input_output.py"
autostart=true
autorestart=true
user=root
redirect_stderr=true
stdout_logfile = /home/anold/XTTS/starts.log
stdout_logfile_maxbytes = 50MB
staout_logfile_backups = 5

总结:

不一定只有切换用户才行,也可以修改系统配置来让root也支持直接访问麦克风。但是,不要把自己想象的比设计操作系统的人还聪明。这种方法不会对系统造成破坏,影响面只在当前程序而已。

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

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

相关文章

【医疗设备方案】脉搏式血氧仪方案

脉搏式血氧仪的主要测量数据分别是血氧饱和度、脉率、血流灌注指数。其中血氧饱和度是指在全部血容量中被结合氧气容量占全部可结合的氧气容量的百分比&#xff0c;是临床医疗上重要的基础数据之一。 脉搏式血氧仪测量原理 典型的脉搏式血氧仪带有一颗光电二极管PD和两颗发光二…

亚马逊云科技re:Invent大会:RAG技术赋能企业AI应用的新纪元

在最新一届re:Invent大会中&#xff0c;亚马逊云科技的数据和人工智能副总裁Swami Sivasubramanian博士提出了一系列AI产品&#xff0c;其中RAG技术成为了企业构建生成式AI应用的重要选择。这种技术的实质是将向量数据库与大语言模型相结合&#xff0c;赋予大模型记忆的能力&am…

LangChain的函数,工具和代理(五):Tools Routing

关于langchain的函数、工具、代理系列的博客我之前已经写了四篇&#xff0c;还没有看过的朋友请先看一下&#xff0c;这样便于对后续博客内容的理解&#xff1a; LangChain的函数&#xff0c;工具和代理(一)&#xff1a;OpenAI的函数调用 LangChain的函数&#xff0c;工具和代…

2023最全的Web自动化测试介绍(建议收藏)

做测试的同学们都了解&#xff0c;做Web自动化&#xff0c;我们主要用Selenium或者是QTP。 有的人可能就会说&#xff0c;我没这个Java基础&#xff0c;没有Selenium基础&#xff0c;能行吗&#xff1f;测试虽然属于计算机行业&#xff0c;但其实并不需要太深入的编程知识&…

C++模板初阶

文章目录 泛型编程函数模板格式模板调用的是同一个函数吗&#xff1f;模板的实现原理T不明确模板实例化的函数和普通函数 类模板类模板写法类模板用法 注意事项 泛型编程 假如我们要写一个两数交换的函数&#xff0c;按我们之前学的知识&#xff0c;我们会这样。 void Swap(i…

TypeScript 在前端开发中的应用范围有哪些?

引言 TypeScript是一种由Microsoft开发的开源编程语言&#xff0c;它是JavaScript的超集&#xff0c;添加了静态类型和其他一些面向对象的特性。在前端开发中&#xff0c;TypeScript的应用范围非常广泛&#xff0c;它不仅提供了更好的开发工具支持&#xff0c;还在代码质量、可…

微信小程序基础bug

1.苹果11手机小程序请求数据不显示 设置-》隐私-》分析与改进-》开启 ”与开发者共享“ 2.<navigator>组件回退delta不成功 tabBar 页面是不能实现后退的效果的. 因为, 当我们跳转到 tabBar 页面&#xff0c;会关闭其他所有非tabBar 页面,所以当处于 tabBar 页面时, 无…

SAP ABAP 通过右键菜单完成Tree Control 节点的增删改功能

通过右键菜单完成Tree Control 节点的增删改功能 Tree 节点的增删改是很重要的功能&#xff0c;包括&#xff1a;增加本级节点&#xff0c;增加子节点&#xff0c;修改节点&#xff0c;删 除节点。完成后效果如下&#xff1a; 选择根节点&#xff0c;单击右键&#xff0c;弹…

peertalk Usbmux 资料收集与整理

Usbmux - The iPhone Wiki Usbmux During normal operations, iTunes communicates with the iPhone using something called “usbmux” – this is a system for multiplexing several “connections” over one USB pipe. Conceptually, it provides a TCP-like system –…

高压功率放大器产品参数及优势有哪些

高压功率放大器是一种关键性能器件&#xff0c;常用于不同领域的应用&#xff0c;包括声音放大、通信系统、电力传输等。以下是关于高压功率放大器产品参数和优势的详细介绍。 一、高压功率放大器的产品参数 输入/输出电压范围&#xff1a;高压功率放大器通常能够承受较高的输入…

金融科技Q3增长密码:结构调优,质量增厚

来源 | 镭射财经&#xff08;leishecaijing&#xff09; 金融科技上市公司三季度交出规模突破、业绩稳增的答卷&#xff0c;为四季度审慎经营、风控优化创造了空间。 从三季度业绩数据看&#xff0c;金融科技行业延续了前两个季度的增长势头&#xff0c;主要金融科技上市公司…

每日汇评:由于美国ADP就业数据疲弱,黄金的反弹可能会延续

在美元全面回落的背景下&#xff0c;金价在2020美元附近跃跃欲试。&#xff1b; 黄金价格的上涨似乎受到美债正收益率的限制&#xff1b; 黄金价格等待美国ADP就业数据获得新的提振&#xff0c;因为技术支撑仍然存在&#xff1b; 周三早盘&#xff0c;金价在2020美元附近小幅反…

处理数据时注意事项

数据安全&#xff1a; 历史数据兼容 越权访问 数据量级 操作记录

完美解决:wget命令下载时遇到“错误 308:Permanent Redirect。”

目录 1 问题 2 解决方法 1 问题 使用wget命令下载时候遇到&#xff1a; --2023-12-02 20:36:08-- http://mirrors.jenkins.io/war-stable/latest/jenkins.war 正在解析主机 mirrors.jenkins.io (mirrors.jenkins.io)... 20.7.178.24, 2603:1030:408:5::15a 正在连接 mirror…

电子版简历模板精选5篇

电子版简历模板模板下载&#xff08;可在线编辑制作&#xff09;&#xff1a;做好简历&#xff0c;来幻主简历。 电子版简历1&#xff1a; 求职意向 求职类型&#xff1a;全职 意向岗位&#xff1a;ERP咨询顾问 意向城市&#xff1a;北京市 薪资要求&#xff1a;…

ROS 欧拉角

在ROS中&#xff0c;欧拉角&#xff08;Euler angles&#xff09;通常用于描述一个物体相对于参考坐标系的旋转。这种表示方法基于三个连续的旋转角度&#xff0c;每个角度对应于绕着特定轴线&#xff08;通常是XYZ轴或ZYZ轴等不同顺序&#xff09;的旋转。 ROS中&#xff0c;…

波长和陡度 现货黄金强弱分析中yyds

按照强势的那一方做交易&#xff0c;不和弱势的一方为伍&#xff0c;这是我们做现货黄金投资的哲学&#xff0c;顺势交易也是建立在这样的基础之上的。要判断现货黄金是强势还是弱势&#xff0c;除了借助技术指标以外&#xff0c;通过看走势本身也可以实现&#xff0c;下面我们…

python 协程asyncio详解

协程 协程就是告诉Cpython解释器&#xff0c;你不是nb吗&#xff0c;不是搞了个GIL锁吗&#xff0c;那好&#xff0c;我就自己搞成一个线程让你去执行&#xff0c;省去你切换线程的时间&#xff0c;我自己切换比你切换要快很多&#xff0c;避免了很多的开销。 协程的本质就是…

【Docker】从零开始:13.Docker安装tomcat

Docker】从零开始&#xff1a;13.Docker安装Tomcat 下载Tomcat镜像启动Tomcat镜像新版本Tomcat修改访问Tomact首页 下载Tomcat镜像 [rootdocker ~]# docker pull tomcat Using default tag: latest latest: Pulling from library/tomcat 0e29546d541c: Pull complete 9b829c7…

uniapp横向滚动示例

目录 插件市场案例最后 插件市场 地址 案例 地址 最后 感觉文章好的话记得点个心心和关注和收藏&#xff0c;有错的地方麻烦指正一下&#xff0c;如果需要转载,请标明出处&#xff0c;多谢&#xff01;&#xff01;&#xff01;