其寝不梦其觉无忧

发布于     更新于
修复音频服务未启动的问题。

古之真人,其寝不梦,其觉无忧,其食不甘,其息深深。 真人之息以踵,众人之息以喉。 屈服者,其嗌言若哇。 其耆欲深者,其天机浅。

——《大宗师》

修复音频服务未启动的问题。

Debian 11 某一次更新之后,系统没有声音了,声音-输出设备里边显示 dummy ,搜了一下是一个叫做 pulseaudio 的服务。

大概的报错如下:

$ pulseaudio
E: [pulseaudio] socket-server.c: bind(): 地址已在使用
E: [pulseaudio] module.c: Failed to load module "module-native-protocol-unix" (argument: ""): initialization failed.
E: [pulseaudio] main.c: D-Bus name org.pulseaudio.Server already taken. 

换了个英文的报错搜了半天:

E: [pulseaudio] socket-server.c: bind(): Address already in use

发现这个地址被占用是因为这个服务已经存在了。

https://bbs.archlinux.org/viewtopic.php?id=232181 这个帖子里看到一个命令:

systemctl --user status pulseaudio.service

结果如下:服务看起来没问题,但是状态是未激活。

 pulseaudio.service - Sound Service
     Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; preset:>
     Active: inactive (dead)
TriggeredBy: pulseaudio.socket

手动启动一下:

systemctl --user restart pulseaudio.service

再查看状态:

$ systemctl --user status pulseaudio.service
 pulseaudio.service - Sound Service
     Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; preset:>
     Active: active (running) since Sun 2022-10-09 14:48:49 HKT; 2s ago
TriggeredBy: pulseaudio.socket
   Main PID: 4549 (pulseaudio)
      Tasks: 4 (limit: 19048)
     Memory: 18.8M
        CPU: 291ms
     CGroup: /user.slice/user-1000.slice/[email protected]/session.slice/pulsea>
             └─4549 /usr/bin/pulseaudio --daemonize=no --log-target=journal

十月 09 14:48:48 debian systemd[1751]: Starting Sound Service...
十月 09 14:48:48 debian pulseaudio[4549]: Stale PID file, overwriting.
十月 09 14:48:49 debian systemd[1751]: Started Sound Service.
十月 09 14:48:49 debian pulseaudio[4549]: Could not find org.bluez.BatteryProvi>

发现可以启动成功,并且也有声音了。


系统重启之后还是没有声音,需要将服务开机启用一下:

$ systemctl --user enable pulseaudio.service
Created symlink /home/x/.config/systemd/user/default.target.wants/pulseaudio.service /usr/lib/systemd/user/pulseaudio.service.
Created symlink /home/x/.config/systemd/user/sockets.target.wants/pulseaudio.socket /usr/lib/systemd/user/pulseaudio.socket.