昨日はUbuntuサーバーでキオスクを正常に作成しました。私はそれを使って24時間を通して実行されるいくつかのWebアプリケーションをスクラブします。
しかし、ある場合にはjsアニメーションの量が多くて止まってしまったり、もう応答しないかと心配されて何もしないでしょう。
ブラウザが停止した後に特定のコマンドを実行する方法はありますか?現在のOSが起動すると、キオスクはそれ自体でトリガーされますが、必要に応じて次の方法で手動で起動および停止できます。
bash
sudo start kiosk
sudo stop kiosk
だから私は走らなければなりません。
bash
sudo stop kiosk
現在停止しているブラウザインスタンスを閉じるには(サーバーにグラフィックがないため終了しますが、キオスクを起動するとブラウザを表示するためにopenboxとxsetがロードされ、キオスクを停止するとサービスが停止します - 未解決)。
次に、以下を実行する必要があります。
bash
sudo start kiosk
すべてを再起動します。
もしそうなら、ブラウザがフリーズしているのか応答していないのかをどうやって検出したら、これを行うことができますか?
編集する:
私のキオスクファイルは次のとおりです。
/opt/kiosk.sh:
#!/bin/bash
xset -dpms
xset s off
openbox-session &
while true; do
rm -rf ~/.{config,cache}/google- chrome/
google-chrome --kiosk --no-first-run 'http://thepcspy.com'
done
/etc/init/kiosk.conf:
start on (filesystem and stopped udevtrigger)
stop on runlevel [06]
console output
emits starting-x
respawn
exec sudo -u user startx /etc/X11/Xsession /opt/kiosk.sh --
答え1
ブラウザはメモリを消費するとしばしばハングします。キオスクモードで動作しているため、ブラウザの理想的なメモリ使用量とブラウザの中断を観察するときに実際にどのくらいのメモリを占めているかを確認できます。
作業中に動作が停止したと仮定すると、次のようにしてどのくらいのメモリを占有しているかを確認してください。
ps -eo vsize,pid | grep <pid of the browser>
今、それを超えてはならない行を知っていました。
vsizeを継続的に監視し、超過した場合に再起動する無限ループを作成します。 (この例では制限を 12345 に保ちます。)
while true; do
browser &
p=$!
echo "browser restarted with pid $p"
while true; do
sleep 1
x=`ps -eo vsize,pid | grep $p | head -1 | awk '{print $1}' `
echo "memory is $x"
if [ "$x" -gt "12345" ]
then
kill -9 $p
break
fi
done
done