Xbmcを起動時に起動し、クラッシュしたときに再起動するようにします。現在、私はユーザー( 'public')に自動ログインし、スタートアップアプリケーションとしてxbmcを使用しています。しかし、xbmcがクラッシュしても再起動しません。これは、個人的にではないにしても、コンピューターの知識がない家族にとっては問題です。/etc/init /スクリプトに慣れているので、 このガイド に従って、次のスクリプトを作成しました(ただし、「xbmc」の代わりにUSER = publicを使用)。
# 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のオプションを選択して、Ubuntuを「パブリック」ユーザーの「通常の」GUI方法で自動起動することでした。次に、プロセスモニタースクリプトを追加して、プログラムを再生成しました。
方法は次のとおりです。 この回答 に続いて、ユーザー「public」のホームディレクトリに次のスクリプトを追加し、「process_monitor.sh」という名前を付けました。
#!/bin/bash
if [[ -z "$1" ]];then
echo "ERROR: must specify program"
exit 1
fi
while (( 0 == 0 ));do
$@ &
pid=`jobs -l | awk '{print $2}'`
wait $pid
done
スクリプトを実行可能にした後
chmod a+x ~/process_monitor.sh
ユーザー「public」の「スタートアップアプリケーション」に次の行を追加しました(Dashまたは少なくとも12.04では右上のバーからアクセスします)。
/bin/bash ~/process_monitor.sh /usr/bin/xbmc
このようにして、完璧なサウンドとビデオ機能を備えたxbmcで自動起動し、モニタースクリプトで、クラッシュ時にxbmcが再生成されることを確認できます。おそらく最も美しいソリューションではありませんが、機能します。