¿Herramienta de línea de comandos para verificar si el usuario actual tiene el escritorio?

1

¿Hay alguna forma, a través de la línea de comando, para verificar si el usuario actual tiene el escritorio? Es decir, si ejecuto un script de shell en una ventana, quiero poder decir (en el script) si el usuario ha cambiado a otra cuenta a través del Cambio rápido de usuario. El script de shell todavía se está ejecutando en esa ventana de comandos, pero como el usuario ha cambiado a otra cuenta, el Escritorio no muestra esa ventana de comandos.

Comparto mi Mac con mi esposa, y cada uno de nosotros tiene sus propias cuentas. Cuando se sienta en la computadora, cambia a su cuenta. Quiero escribir un programa Python que se ejecute 24/7 en mi cuenta. Quiero que el programa sepa cuándo mi esposa está en la computadora y se ha cambiado a su cuenta.

Espero que esté explicando esto claramente. Busqué en Google durante 20 minutos antes de darme por vencido, ya que ninguno de los resultados de búsqueda era ni siquiera cercano a lo que estaba tratando de encontrar. Ni siquiera sé cómo formular la pregunta correctamente.

    
pregunta John Smith 12.11.2014 - 15:22

3 respuestas

0

Ok, creo que lo descubrí, pero no sé cómo funciona. La siguiente función de Python devuelve un valor cuando soy el inicio de sesión activo y otro cuando no lo soy:

from Quartz import CGMainDisplayID
print CGMainDisplayID()

Todo lo que necesito hacer es almacenar el valor de CGMainDisplayID () cuando se ejecuta el script por primera vez, y luego volver a llamarlo cuando quiera ver si me cambié. Si devuelve un valor diferente, entonces sé que estoy apagado.

    
respondido por el John Smith 13.11.2014 - 03:54
0

Puede verificar quién tiene la "consola" con el comando:

ps aux | grep console | grep -v grep | awk '{ print $1 }'
    
respondido por el Mateusz Szlosek 12.11.2014 - 15:27
0

Puede hacerlo si crea un "enlace de inicio de sesión". Un enlace de inicio de sesión le dice a Mac OS X que ejecute un script determinado cuando un usuario inicia sesión. A diferencia de los elementos de inicio que se abren cuando un usuario inicia sesión, un enlace de inicio de sesión es un script que se ejecuta como root.

Con un enlace de inicio de sesión:

  • El script especificado como un enlace de inicio de sesión debe ser ejecutable.
  • El enlace de inicio de sesión se ejecutará como root.
  • En el script de enlace de inicio de sesión, la variable $ 1 devuelve el nombre corto del usuario que está iniciando sesión.
  • Otras acciones de inicio de sesión esperan hasta que el enganche se haya ejecutado por completo.

Cómo configurar un enlace de inicio de sesión

  1. Terminal abierta (Aplicaciones / Utilidades).
  2. En la ventana de la Terminal, escriba:

    sudo defaults write com.apple.loginwindow LoginHook /path/to/script

    (donde /path/to/script es la ruta completa al script que desea ejecutar cuando un usuario inicia sesión, no tiene que estar en el directorio de inicio del usuario).

    Esto modifica el archivo /var/root/Library/Preferences/com.apple.loginwindow .

  3. Escriba su contraseña cuando se le solicite, luego presione Retorno.

Artículo completo en la página de soporte de Apple: Mac OS X: creando un enlace de inicio de sesión

    
respondido por el jherran 12.11.2014 - 15:44

Lea otras preguntas en las etiquetas