0 votos

Cómo encontrar el id de proceso para la instancia de la aplicación creada por el comando "abrir"

Cuando me programmerly hacer open -F -W -n -g -a /Applications/Safari.app/Contents/MacOS/Safari https://kernel.org, llegué de nuevo el proceso de open y su pid 93930.

Pero ese no es el proceso (93931) de la recién creada Safari propia instancia.

huocp 93931   0.0  1.9  6047904 160240   ??  S    11:55am   0:04.39 /Applications/Safari.app/Contents/MacOS/Safari
huocp 93930   0.0  0.1  4340272  12212 s004  S+   11:55am   0:00.07 open -F -W -n -g -a /Applications/Safari.app/Contents/MacOS/Safari https://kernel.org

Ahora no tengo manera de cerrar el Safari proceso programmerly. Puedo cerrar la open proceso de programmerly matando 93930, pero deja 93931 ejecución.

Así que la pregunta es: ¿hay una manera de obtener el pid de la aplicación instancia creada por open comando?

93931 (safari) no es aún un proceso hijo de 93930 (abierto), he intentado con el comando pstree.

2voto

The_Lucifer Puntos 31

Similar pregunta en StackOverflow

Si estás programación de hacer esto, una forma de obtener la abrió aplicación del pid (posteriormente usarla para matar el proceso) es conseguir que el grep de la salida de ps aux pasándole el nombre de la aplicación.

ps aux | grep -v grep | grep -I <AppName> | sort -rn | head -1 | awk '{print $2}'

Básicamente, el resultado de la canalización de la ps aux de comandos a través de grep y de ordenación se basa en el valor de la hora de inicio de la columna.

Como se señalaba en @user3439894 a continuación, hay una manera más fácil sin que lo anterior galimatías.

pgrep -nx Safari

devuelve el PID del último abierto de la instancia de Safari y

pkill -nx Safari

mata a la última instancia abierta de Safari.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X