Ubuntu 14.04 - 如何使用脚本在关机时播放 ogg 文件



所以,我试图让脚本在关机/重启时播放一个简短的 ogg 文件,但我似乎在实际让它工作时遇到了某种麻烦。现在,我在 init.d 中有脚本,并在 rc0.d 和 rc6.d 中有符号链接,这些链接在手动执行时似乎都可以工作。脚本和链接都以"K99"开头,因为系统应该按字母顺序浏览列表,K99 应该让它在正确的时间执行。(我尝试过其他东西,比如K00,K50和"S"变体,因为我看到了其他一些脚本;但它们似乎没有改变任何东西。

#!/bin/sh
## play shutdown sound
pulseaudio --start
echo -e "Shutdown sound script."
/usr/bin/play /home/username/Downloads/sound_file.ogg
sleep 3

我认为脚本非常简单。ogg 文件和脚本都处于 755 权限。该文件只有大约 3s 长,所以我也不认为这是问题。最初,脚本似乎根本不起作用,所以我添加了 sleep 命令。现在关闭似乎需要大约三秒钟的时间,所以我认为脚本正在运行,但我有一种感觉,在脚本关闭之前,Ubuntu 可能会杀死音频守护进程(如果有的话?),但我不确定。我花了几天时间试图弄清楚这个看似简单的事情。有什么想法吗?

抱歉,如果这最终变得微不足道,我对 Ubuntu 系统的东西有点新手。(虽然我可以通过简单的修复来做! :) )

更新它现在应该工作!在搜索了为什么声音可能会多次播放,尤其是在启动时,我对新贵系统有了更多的了解。它查看 etc/init/目录并在启动时运行其中的脚本。我记得我曾经尝试过,当声音仍然没有播放时,我在那里放了一个暴发户脚本。显然我忘记删除它,它正在所有运行级别执行,从而导致双重关闭和启动实例。现在它已经消失了,一切都是应该的。(虽然现在我已经修复了它,但我有点厌倦了听到声音,可能不得不找到一个新的,哈哈。谢谢大家的帮助。

TL;DR:在 init.d 中放置一个脚本,并以符号方式链接到 etc/rc0.d(如果你也想在重新启动时使用它,也可以链接到 etc/rc6.d)。如果它播放多次,您可能在不应该出现的地方有一个副本。

在关机时执行脚本

  • 将脚本放入/etc/rc0.d 中
  • 使其可执行 ( sudo chmod +x script.sh
  • 注意:此目录中的脚本按字母顺序执行次序

脉冲音频

PulseAudio是一个声音服务器。它允许您在声音数据在应用程序和硬件之间传递时对其进行高级操作。

在乞求脚本时启动 PulseAudio:

pulseaudio --start

注意:您必须在脚本中尝试/使用此命令,因为启动音频守护程序并播放 ogg 文件只是时间问题。

最新更新