Foros Python

Versión completa: Programa para avisar de una conexión en Linux (Python3)
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola, tengo un scipt con python que me avisa de cuando alguien se a conectado a mi sistema, el problema es que cuando lo ejecuto y me conecto con otro usuario me avisa, pero cuando me desconecto con el otro usuario mientras el programa se sigue ejecutando me sigue apareciendo que hay alguien conectado, este es mi script:

Código:
#! /usr/bin/python3
import subprocess
import time

import gi
gi.require_version('Notify', '0.7')
from gi.repository import Notify
Notify.init("ssh2.py3")


a=subprocess.check_output("who|wc -l",shell=True)
b=int(a.decode("utf-8").strip())
print(b)
def funcion():



  if b>1:
     subprocess.run("zenity --info --text 'Alguien se a conectado'", shell=True)
     subprocess.run("sudo xterm -e home/sergio/Escritorio/prueba.sh",shell=True)      

     if b==2:
        su1=subprocess.check_output("who|tail -2",shell=True)
        su2=su1.decode("utf-8").strip()
        print("Se a conectado: ")
        print(su2)
        Notify.Notification.new("Alguien se a conectado", su2).show()

     if b==3:
        se1=subprocess.check_output("who|tail -3",shell=True)
        se2=se1.decode("utf-8").strip()
        print("Se a conectado: ")
        print(se2)
        Notify.Notification.new("Alguien se a conectado", se2).show()

     if b>=4:
        si1=subprocess.check_output("who",shell=True)
        si2=si1.decode("utf-8").strip()
        print("Se an conectado mas de 4 usuarios: ")
        print(si2)
        Notify.Notification.new("Alguien se a conectado", si2).show()
 


while True:
  funcion()
  time.sleep(5)

Quiero que no siga apareciendo que alguien se a conectado si solo estoy yo. Si podeís mejorar mi programa hacerlo y explicarmelo, me gustaría aprender. Gracias