防止 XBMC 关闭

防止 XBMC 关闭

我有一个安装了 XBMC 的 ubuntu 服务器,该服务器通过 HDMI 电缆连接到电视。要启动 XBMC,我运行以下命令:

sudo init xbmc

通过使用 ssh 远程连接到服务器,然后以此方式运行命令。这在当时似乎工作正常,我将能够观看电影或电视节目。几个小时后,XBMC 似乎停止运行,无论它是否正在播放某些内容,这意味着每次我想观看某些内容时,我都必须 ssh 连接到服务器并运行该命令。

我理想的解决方案是只需运行该命令一次,这样我就可以关闭电视并离开一段时间,但当我回来时,我可以使用 XBMC 而无需登录并运行该命令。

我认为我一定是以错误的方式启动了 XBMC 或者是设置中某些内容我没有正确设置,有人可以帮忙吗?

答案1

有几种方法可以做到这一点,这取决于该服务器的使用方式(即,它是否是专用的 HTPC),脚本upstart可能最适合您。这个来自同一个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

你也可以禁用该服务不会自动启动,因此您仍然能够通过sshXBMC 远程登录并运行。

答案2

您可以通过在命令后附加一个 & 符号来在后台运行该程序。

sudo init xbmc --standalone -- -nocursor :0 &

这将确保 xbmc 不会因为不使用屏幕而因超时而被终止。

答案3

您还可以使用解决方法:每隔几分钟让 cron-job 检查 XMBC 是否仍在运行,如果未运行则重新启动。相应的 bash 可能如下所示:

#!/bin/bash

if [ `ps u | grep xmbc | wc -l` != "2" ]; then
    screen -dm init xmbc
fi

如果 xmbc 生成子进程,您可能需要调整行数("2"部分)。根据您的设置,它也可以在没有的情况下工作screen

相关内容