#!/bin/python import select import time currScreen = '2' vcsa = {} for i in range(1,7): vcsa[str(i)] = open('/dev/vcs'+str(i),'rb') tty = open('/sys/devices/virtual/tty/tty0/active','r') currScreen = str(tty.read()[3:-1]) oldScreen = currScreen watchdog = select.epoll() watchdog.register(vcsa[currScreen], select.EPOLLPRI) watchdog.register(tty, select.EPOLLPRI) while True: changes = watchdog.poll() print('-----------------------------') print(changes) for change in changes: fileno = change[0] event = change[1] print(change,fileno, tty.fileno()) if fileno == tty.fileno(): tty.seek(0) currScreen = str(tty.read()[3:-1]) if currScreen != oldScreen: watchdog.unregister(vcsa[ oldScreen ]) watchdog.register(vcsa[ currScreen ], select.EPOLLPRI) oldScreen = currScreen print('new screen '+ currScreen) else: vcsa[currScreen].seek(0) content = vcsa[currScreen].read() print('update '+ str(time.time()))