3

所以,我试图让一个脚本在关机/重启时播放一个简短的 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 权限。该文件只有大约 3 秒长,所以我认为这也不是问题。最初,脚本似乎根本不起作用,所以我添加了 sleep 命令。现在关闭似乎需要大约三秒钟的时间,所以我认为脚本正在运行,但我感觉 Ubuntu 可能会在脚本关闭之前杀死音频守护程序(如果有的话?),但我我不确定。我花了几天时间试图弄清楚这个看似简单的事情。有任何想法吗?

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

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

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

4

1 回答 1

2

在关机时执行脚本

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

脉冲音频

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

在脚本请求时启动 PulseAudio:

pulseaudio --start

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

于 2015-01-31T05:27:18.473 回答