我有一个安装了 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
你也可以禁用该服务不会自动启动,因此您仍然能够通过ssh
XBMC 远程登录并运行。
答案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
。