Strumento da riga di comando per verificare se l'utente corrente ha il desktop?

1

C'è un modo, tramite la riga di comando, per verificare se l'utente corrente ha il desktop? Cioè, se eseguo uno script di shell in una finestra, voglio essere in grado di dire (nello script) se l'utente è passato a un altro account tramite Cambio rapido utente. Lo script della shell è ancora in esecuzione in quella finestra di comando, ma poiché l'utente è passato a un altro account, il desktop non mostra quella finestra di comando.

Condivido il mio Mac con mia moglie e ognuno di noi ha i propri account. Quando si siede al computer, passa al suo account. Voglio scrivere un programma Python che gira 24/7 sul mio account. Voglio che quel programma sappia quando mia moglie è al computer e ha passato al suo account.

Spero di spiegarlo chiaramente. Ho cercato su Google per 20 minuti prima di rinunciare, perché nessuno dei risultati della ricerca era nemmeno vicino a quello che stavo cercando di trovare. Non so nemmeno come esprimere correttamente la domanda.

    
posta John Smith 12.11.2014 - 15:22
fonte

3 risposte

0

Ok, penso di aver capito, ma non so come funziona. La seguente funzione Python restituisce un valore quando sono il login attivo e un altro quando non lo sono:

from Quartz import CGMainDisplayID
print CGMainDisplayID()

Tutto quello che devo fare è memorizzare il valore di CGMainDisplayID () quando lo script viene eseguito per la prima volta, e poi richiamarlo di nuovo ogni volta che voglio vedere se sono passato. Se restituisce un valore diverso, so che sono passato.

    
risposta data 13.11.2014 - 03:54
fonte
0

Puoi controllare chi ha la "console" con il comando:

ps aux | grep console | grep -v grep | awk '{ print $1 }'
    
risposta data 12.11.2014 - 15:27
fonte
0

Puoi farlo se crei un "gancio di accesso". Un hook di login indica a Mac OS X di eseguire un certo script quando un utente esegue l'accesso. A differenza degli elementi di avvio che si aprono quando un utente accede, un hook di accesso è uno script che viene eseguito come root.

Con un hook di accesso:

  • Lo script specificato come hook di accesso deve essere eseguibile.
  • Il gancio di accesso verrà eseguito come root.
  • Nello script hook di accesso, la variabile $ 1 restituisce il nome breve dell'utente che sta effettuando l'accesso.
  • Altre azioni di accesso rimangono in attesa fino al termine dell'esecuzione completa.

Come impostare un hook di accesso

  1. Apri terminale (Applicazioni / Utility).
  2. Nella finestra Terminale, digita:

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

    (dove /path/to/script è il percorso completo dello script che si desidera eseguire quando un utente effettua l'accesso, non deve trovarsi nella directory Home dell'utente).

    Questo modifica il file /var/root/Library/Preferences/com.apple.loginwindow .

  3. Digita la password al prompt, quindi premi Invio.

Articolo completo sulla pagina di supporto Apple: Mac OS X: creazione di un hook di accesso

    
risposta data 12.11.2014 - 15:44
fonte

Leggi altre domande sui tag