어제 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