我希望 xbmc 在启动时启动,并在它崩溃时重新启动。目前,我自动登录到一个用户('public')并将 xbmc 作为启动应用程序。但是,如果 xbmc 崩溃,它不会重新启动,这对我这个不懂计算机的家庭来说是个问题,如果不是对我个人来说的话。因为我习惯了 /etc/init/ 脚本,所以我按照本指南创建了以下脚本(但使用 USER=public 而不是 'xbmc'):
# xbmc-upstart
# starts XBMC on startup by using xinit.
# by default runs as xbmc, to change edit below.
env USER=xbmc
description "XBMC-barebones-upstart-script"
author "Matt Filetto"
start on (filesystem and stopped udevtrigger)
stop on runlevel [016]
# tell upstart to respawn the process if abnormal exit
respawn
script
exec su -c "xinit /usr/bin/xbmc --standalone -- -nocursor :0" $USER
end script
从机器启动到 xbmc 的意义上来说,它工作得很好,但现在我没有声音了!当我退出 xbmc 时,它直接重新启动,这意味着我不能(也就是说,我至少没有技能知道如何)从 Unity 检查声音设置。
有关如何使声音正常工作的建议?
我找到了一种解决方法,可以为我解决问题,因为它:
我选择做的是通过选择 Unity 中的选项,以“正常”GUI 方式将 Ubuntu 自动启动到我的“公共”用户。然后,我添加了一个进程监控脚本来为我重新生成程序。
方法如下:按照这个答案,我将以下脚本添加到用户“public”的主目录中,并将其命名为“process_monitor.sh”:
使脚本可执行后
我在“启动应用程序”中为用户“public”添加了以下行(通过 Dash 或至少在 12.04 中的右上栏访问):
这样,我现在可以在具有完美声音和视频功能的 xbmc 中自动启动,然后让监视器脚本确保 xbmc 在崩溃时重新生成。也许不是最漂亮的解决方案,但它确实有效!