편집하다:

편집하다:

어제 Ubuntu 서버에서 키오스크를 성공적으로 만들었습니다. 저는 이를 사용하여 24시간 내내 실행되는 일부 웹 애플리케이션을 스크럽할 것입니다.

하지만 어떤 경우에는 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

관련 정보