Linux:从systemd启动的守护程序播放声音

时间:2019-03-04 20:36:04

标签: service systemd pulseaudio

在我的ubuntu 18.10上,我有一个守护程序正在通过systemd在系统启动时启动,它通过串行和USB访问很多传感器。

在某些情况下,它需要通过默认的音频接收器播放一些声音,但是只要尝试运行,守护程序就会退出。

systemctl状态显示以下消息:

PulseAudioService: pa_context_connect() failed 
Assertion 'c' failed at pulse/context.c:1062, function pa_context_get_state(). Aborting.

如果我从命令行启动守护程序,则声音播放不会有任何问题,但是,如果通过systemctl start(或重新启动)启动了守护程序,则应在播放声音时崩溃。

这使我相信问题在于.service文件中的某些资源设置,但是我无法找到解决问题的设置。

我的.service文件:

[Unit]  
Description=Vejrstation server  
After=mysql.service  

[Install]  
WantedBy=default.target   

[Service]  
type=forking
RemainAfterExit=yes 
ExecStart=/usr/bin/vejrstationd 
Restart=on-failure 
DeviceAllow=char-alsa rw  
DeviceAllow=char-ttyACM rw  
DeviceAllow=char-ttyUSB rw  
DeviceAllow=char-ttyS rw

有什么想法吗?


经过大量研究,我得出的结论是,这个问题可能不是编程问题,而是systemd或Pulseaudio的配置问题,因此这可能不是正确的论坛。

0 个答案:

没有答案