当系统准备好供用户登录时,如何在Ubuntu 17.10中恢复鼓声

在Ubuntu 16.04中,当我打开计算机电源时,在我出现Login界面之前就会播放鼓声。 升级到Ubuntu 17.10后,不再播放鼓声音。 我在网上做了一些研究并尝试了下面的内容,它可以播放鼓声,但只有在我登录后才能播放。

我启动了启动应用程序首选项并添加了包含以下内容的项目。

/usr/bin/canberra-gtk-play --id="desktop-login" -f /usr/share/sounds/ubuntu/stereo/system-ready.ogg 

但这只能让我在登录后播放声音。

我也试过了

 /usr/bin/canberra-gtk-play --id="system-ready" -f /usr/share/sounds/ubuntu/stereo/system-ready.ogg 

但这与其他尝试具有相同的效果; 滚动声音仅在我登录后播放。

所以我想问是否有人找到了一种方法来在用户登录之前播放鼓声音,当用户出现登录对话框时。

我也试过–id =“system-bootup”,它应该更早地提出鼓声。 但即使使用该设置,直到我登录后才会播放鼓声音。

这是一种使用从gdm用户的主目录运行的systemd用户单元的方法。

  • 将以下文件另存为/var/lib/gdm3/.config/systemd/user/drumroll.service

     [Unit] Description=Drumroll Requires=pulseaudio.socket After=systemd-user-sessions.service [Service] Type=simple Restart=no ExecStart=/usr/bin/paplay /usr/share/sounds/ubuntu/stereo/system-ready.ogg [Install] WantedBy=default.target 

上面的systemd单元应该确保在gdm用户上下文中启动了pulseaudio并执行了paplay命令(我没有尝试过canberra-gtk-play ,但我认为它也能正常工作)。

After=systemd-user-sessions.service之后,只有在系统准备好进行用户登录后才能启动服务。 (见http://manpages.ubuntu.com/manpages/artful/man8/systemd-user-sessions.service.8.html )

  • 然后执行:

     $ sudo mkdir -p /var/lib/gdm3/.config/systemd/user/default.target.wants $ sudo ln -s /var/lib/gdm3/.config/systemd/user/drumroll.service /var/lib/gdm3/.config/systemd/user/default.target.wants/drumroll.service $ sudo chown gdm:gdm /var/lib/gdm3/.config/systemd/user/{drumroll.service,default.target.wants} 

最后一个命令使单元在gdm用户的systemd会话启动时自动启动。

  • 重新启动测试。

检查错误有点棘手,因为systemctl有限制连接到系统会话或主叫用户的会话。 要使用gdm调用用户很容易使用sudo,但是需要设置一些环境才能连接到其systemd用户会话:

 $ sudo -u gdm XDG_RUNTIME_DIR="/run/user/$(id -u gdm)" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status drumroll ● drumroll.service - Drumroll Loaded: loaded (/var/lib/gdm3/.config/systemd/user/drumroll.service; enabled; vendor preset: enabled) Active: inactive (dead) since Tue 2018-06-26 23:35:05 CEST; 36min ago Process: 1238 ExecStart=/usr/bin/paplay /usr/share/sounds/ubuntu/stereo/system-ready.ogg (code=exited, status=0/SUCCES Main PID: 1238 (code=exited, status=0/SUCCESS) 

我没有用17.10但是18.04尝试过这个,但是我没有看到它在17.10上不能正常工作的原因。