diff --git a/viewer.py b/viewer.py index bf777a24a..96a2a7b2a 100755 --- a/viewer.py +++ b/viewer.py @@ -10,7 +10,7 @@ from datetime import datetime, timedelta from glob import glob from os import path, getenv, remove, makedirs -from os import stat as os_stat, utime +from os import stat as os_stat, utime, system from platform import machine from random import shuffle from requests import get as req_get @@ -18,6 +18,7 @@ from subprocess import Popen, call from time import sleep, time import logging +import signal from settings import settings import html_templates @@ -31,6 +32,14 @@ last_settings_refresh = None +#This is the signal handler for SIGUSR1 +#After this returns all sleep() calls are aborted +#Since we also kill omxplayer it means we abort +#displaying the current asset +def sigusr1(signum, frame): + logging.info("Skip current asset") + system("killall omxplayer.bin") + class Scheduler(object): def __init__(self, *args, **kwargs): logging.debug('Scheduler init') @@ -249,6 +258,10 @@ def reload_settings(): if __name__ == "__main__": + #Install signal handler + signal.signal(signal.SIGUSR1, sigusr1) + + # Before we start, reload the settings. reload_settings()