Estoy ejecutando una aplicación que llama a script.sh y me gustaría recuperar el PID o nombre de la aplicación invocadora dentro de ese mismo script.sh. En última instancia, en mi script.sh, estoy tratando de determinar si la aplicación o Terminal fue el invocador (con el fin de ejecutar diferentes comandos)
He añadido esto a mi script.sh
ps -p $PPID -o ucomm= >> /Users/john/Desktop/log.txt 2>&1
Parece que la aplicación está utilizando etc/launchd
para abrir mi shell por defecto ( zsh
) para ejecutar el script y no esperar... Creo que a esto se le llama "proceso zombi"?
man ps
dice
Cuando se imprime utilizando la palabra clave command, un proceso que ha salido y ha un padre que aún no ha esperado al proceso (en otras palabras, un zombi) aparece como "", y un proceso que está bloqueado mientras intenta salir aparece como "". salir aparece como "". Si los argumentos no pueden localizarse (normalmente porque no se han establecido, como es el caso de los procesos del sistema y/o hilos del núcleo) el nombre del comando se imprime entre corchetes. El proceso proceso puede cambiar los argumentos mostrados con setproctitle(3). De lo contrario, ps hace una estimación del nombre del fichero y los argumentos dados cuando se creó el proceso cuando se creó el proceso examinando la memoria o el área de intercambio. El método es inherentemente poco fiable y en cualquier caso un proceso tiene derecho a destruir esta información. Sin embargo, la palabra clave ucomm (contabilidad) puede ser depender de . Si los argumentos no están disponibles o no coinciden con los de ucomm, el valor de la palabra clave ucomm se añade a los argumentos entre paréntesis.
(El subrayado es mío)
Sin embargo no veo "defunct" o, cuando se utiliza la bandera ucomm
Todo lo que se menciona en la página de manual.
¿Existe otro conjunto de banderas u opciones que pueda probar con ps para obtener más información?