Come si passa all'applicazione in base al suo PID dalla CLI?

3

Ho iniziato a utilizzare Firefox con più profili, tuttavia a volte sono perso e non riesco a trovare la finestra giusta.

Ad esempio, ho il processo con PID 1234 come:

$ ps wuax | grep -w Foo
kenorb           1234  /Applications/Firefox.app/Contents/MacOS/firefox -P Foo

Come posso cambiare lo stato attivo in base al suo PID?

    
posta kenorb 18.02.2018 - 15:48
fonte

1 risposta

2

Ecco uno snippet esempio AppleScript codice che porterà le finestre di unix id (PID) per il processo che mostra Foo nel suo comando in primo piano:

set thisUnixID to (do shell script "ps wx | awk '/[F]oo/{print $1}'") as integer

tell application "System Events"
    set frontmost of every process whose unix id is thisUnixID to true
end tell

Si noti che questo codice di esempio può essere rielaborato per chiedere un nome di profilo e passare da lì e può essere fatto sia come applicazione AppleScript sia come script bash in base ai propri requisiti.

Nota anche che le parentesi quadre attorno al primo carattere di "Foo" ci sono, quindi restituisce solo il PID per la destinazione appropriata, non ad es. il PID di awk che cerca "Foo" senza le parentesi quadre.

Ecco la versione leggermente modificata che trova la finestra di Firefox con un nome profilo specifico:

#!/usr/bin/env osascript
set PID to (do shell script "pgrep -f -- 'firefox -P Foo'") as integer

tell application "System Events"
  set frontmost of every process whose unix id is PID to true
end tell
    
risposta data 18.02.2018 - 18:18
fonte

Leggi altre domande sui tag